title: Viable options for running NodeJS on Android (Aug 2017)
body: <p>There are a bunch of old SO threads dealing with running NodeJS on Android. Most of these are no longer viable (JXCore) and/or provide confusing, outdated, incomplete, or erroneous information.</p>
  
  <p>Therefore I have investigated what seems to be currently (as of August 2017) viable approaches and found three likely candidates.</p>
  
  <p>To decide between them I would like to know:</p>
  
  <ul>
  <li><em>the primary differences between these approaches</em></li>
  <li><em>specific pro's and con's on each approach</em></li>
  <li><em>likely hurdles, challenges and shortcomings</em></li>
  <li><em>do you know of other viable alternatives?</em></li>
  </ul>
  
  <p><strong>Viable approaches are</strong>:</p>
  
  <ol>
  <li>Running V8 javascript engine which includes NodeJS (<a href="https://github.com/eclipsesource/J2V8" rel="noreferrer">J2V8</a>)</li>
  <li>Use NodeJS directly, embedded as native library (<a href="https://github.com/node-on-mobile/node-on-android" rel="noreferrer">node-on-android</a>)</li>
  <li>Combining React Native with NodeJS app-as-a-service (<a href="https://github.com/staltz/react-native-node" rel="noreferrer">react-native-node</a>)</li>
  </ol>
  
  <p>Besides that I have found a number of related interesting resources:</p>
  
  <ul>
  <li>NPM install NodeJS directly using Termux without rooting (not for end-users)</li>
  <li><a href="https://github.com/LiquidPlayer/LiquidCore" rel="noreferrer">LiquidCore</a> - native mobile micro-app devenv (not investigated, interesting concepts)</li>
  <li><a href="https://github.com/dna2github/dna2oslab/blob/master/android/build/node-v7.1.0.sh" rel="noreferrer">dna2oslab</a> - has a working NodeJS build script for node executables</li>
  <li><a href="https://www.sisik.eu/blog/build-node-js-for-android" rel="noreferrer">Building NodeJS for Android</a> - blog with useful compilation tips and <a href="https://github.com/sixo/node-example" rel="noreferrer">example project</a></li>
  </ul>