[javascript] Options viables pour exécuter NodeJS sur Android (août 2017)


Answers

J'ai reçu une réponse de @ dna2github , le créateur de NodeBase (merci beaucoup!) Que je vais inclure ici (avec permission):

Salut,

Merci pour votre question. Je vais faire une brève réponse à mon avis.

1. Exécution du moteur JavaScript V8 sur Android qui inclut NodeJS

avantages:

  • intégré avec le monde Java; peut obtenir le contrôle total du code.

les inconvénients:

  • un peu difficile à intégrer avec les 3e paquets (besoin de temps pour apprendre comment).
  • besoin de se renseigner sur les choses NodeJS et V8 et aussi les documents J2V8 (il consomme beaucoup de temps).

2. Compilez NodeJS en tant que bibliothèque native (en utilisant node-on-android)

avantages:

  • se concentrer sur js dev et pas besoin de considérer le côté android.
  • moins de temps d'apprentissage; similaire à Cordova phonegap ....

les inconvénients:

  • js app => apk est une boite noire.

3. Exécuter NodeJS sur Android en utilisant Termux

avantages:

  • flexible

les inconvénients:

  • pas de gui

4. Autres approches intéressantes

Pas familier avec LiquidCore; construire un service de micro en particulier à partir de l'URL, je pense, est de résoudre aucun stockage disponible directement sur iOS. reac-native-node La partie Android est basée sur la méthode NodeBase et utilise le binaire pré-construit.

Pour NodeBase:

avantages:

  • similaire à 3; la différence est qu'il a son propre gui pour démarrer / arrêter l'application.
  • ça peut être un modèle pour tout; par exemple, si vous souhaitez exécuter django, vous devez simplement remplacer node par python; rails, rubis ...

les inconvénients:

  • problème d'accès au processus natif; le processus ne peut pas hériter de l'accès depuis l'application Android.
  • happy toy happy open source pas comme une application commerciale; besoin de plus de conception si vous voulez distribuer aux clients

Au début, je cours le noeud dans le terminal; Je trouve que seul le dev peut facilement l'utiliser pour lancer l'application js. Mes amis et familles veulent aussi des outils pour faire par exemple des marques d'eau sur une photo en lot. NodeBase est créé pour eux pour démarrer / arrêter facilement l'application. Ensuite, ils ont juste besoin d'ouvrir le navigateur pour l'utiliser. Mon autre idée pour créer NodeBase est que nous pouvons construire des applications partageables qui peuvent être partagées dans le même réseau Wi-Fi. Lorsque l'hôte démarre une application, elle peut être visitée par des personnes proches. Ensuite, ils peuvent travailler et jouer ensemble. Par exemple, nous jouons au loup-garou et quand il n'y a pas de juge, nous allons commencer l'application loup-garou pour avoir un juge pour le premier tour. Nous pouvons également partager des fichiers entre les appareils via le téléchargement / téléchargement.

Pour moi, je peux construire ce que je veux de manière flexible par exemple, je voudrais faire mon Android comme un coureur d'apprentissage machine; il peut m'aider à exécuter des programmes d'apprentissage machine à tout moment (avec node et python, donc dans mon autre repo: dna2oslab se concentre sur la construction de binaires) pour utiliser le temps de fonctionnement du téléphone.

Pour vous, si vous voulez porter votre application dans un court laps de temps, je recommande 2; Si vous avez du temps et d'autres ressources, 1 c'est mieux. 3 si vous venez de faire un jouet / démo. 4 autres est toujours possible et faites simplement votre imagination pour créer des œuvres.

Meilleurs voeux, Seven

Question

Il y a un tas de vieux threads SO traitant de NodeJS sous Android. La plupart d'entre elles ne sont plus viables (JXCore) et / ou fournissent des informations confuses, périmées, incomplètes ou erronées.

Par conséquent, j'ai étudié ce qui semble être actuellement (en août 2017) des approches viables et trouvé trois candidats probables.

Pour décider entre eux, je voudrais savoir:

  • les principales différences entre ces approches
  • avantages et inconvénients spécifiques à chaque approche
  • obstacles, défis et lacunes probables
  • Connaissez-vous d'autres alternatives viables?

Les approches viables sont :

  1. Exécution du moteur JavaScript V8 qui inclut NodeJS ( J2V8 )
  2. Utiliser NodeJS directement, intégré en tant que bibliothèque native ( node-on-android )
  3. Combinaison de React Native avec NodeJS app-as-a-service ( react-native-node )

En outre, j'ai trouvé un certain nombre de ressources intéressantes connexes:

  • NPM installe NodeJS directement à l'aide de Termux sans l'enraciner (pas pour les utilisateurs finaux)
  • LiquidCore - devenv mobile micro-native (pas étudié, concepts intéressants)
  • dna2oslab - a un script de construction NodeJS fonctionnel pour les exécutables de noeud
  • Building NodeJS pour Android - blog avec des astuces de compilation utiles et un exemple de projet



Links