web-dev-qa-db-fra.com

Exécution de Node.Js sur Android

Donc, je sais que cela a été beaucoup remis en question. Pour être exact par exemple dans ces questions:

  1. serveur Run NodeJs sous Android
  2. Comment exécuter mon projet node.js sur android?
    et
  3. NodeJS sur IOS/Android

Chaque option présentée a cependant un problème:

  • Je veux l'exécuter sur mon périphérique normal afin d'éviter d'installer un autre système d'exploitation sur mon périphérique

  • Les travaux sur JXCore ont été arrêtés le mois dernier et (peut-être en conséquence), je ne pouvais pas le compiler (voir Impossible d'installer jxcore-cordova )

  • Le Android Port of NodeJs Anode n'a pas été travaillé depuis 2014 et n'était pas vraiment maintenu à l'époque de toute façon.
  • La deuxième réponse dans le deuxième fil que j'ai lié à mentionné il y a une distribution officielle de nœuds pour Android maintenant, mais en dehors d'un lien vers le Parcourir le site Web de la dernière dist Je ne pourrais pas t trouver aucune information sur la façon de l'utiliser réellement
  • J'ai aussi vu this mais il semble que l'appareil doit être connecté à un PC (ou similaire) pour exécuter les commandes adb Shell alors que je souhaite le faire en tant qu'application séparée.

Avec le temps passé depuis que ces questions ont été postées et comme "meilleure option", JXCore semble être maintenant inutilisable:
Existe-t-il un moyen d'exécuter une application node.js (un serveur dans mon cas) sur un périphérique Android?

si vous vous demandez pourquoi je voudrais ceci: j'ai créé une WebApp avec un serveur Node.Js et je souhaite maintenant une version que vous pouvez lancer localement à partir de votre téléphone sans nécessiter de connexion Internet. Cela signifie que le serveur doit fonctionner sur un téléphone Android.

79
MariusR

Je viens d'avoir un moment de chute - Termux vous permet d'installer NodeJS sur un appareil Android!

Cela semble fonctionner pour un test de base test de vitesse Websocket que j'avais sous la main. Le http servi par celui-ci peut être consulté localement et sur le réseau.

Il y a un poste moyen qui explique le processus d'installation

Fondamentalement: 1. Installez termux 2. apt install install nodejs 3. Nœudez-le!

Une restriction que j'ai rencontrée - il semble que les dossiers partagés ne disposent pas des autorisations nécessaires pour installer des modules. Cela pourrait juste être une question d'autorisation de fichier. Le stockage de l'application privée fonctionne très bien.

70
Pyro

Dory - node.js

Grande nouvelle application
Pas besoin de rooter votre téléphone et vous pouvez exécuter votre fichier js depuis anywere.

  • runtime node.js (exécutez les API ES2015/ES6, javascript ES2016 et node.js sous Android)
  • Documents API et code instantané exécutés à partir de doc
  • éditeur de code mettant en évidence la syntaxe
  • supporte npm
  • terminal linux (boîte à jouets 0.7.4). node.js REPL et commande npm dans Shell (ajoutez l'option '--no-bin-links' si vous exécutez npm dans/sdcard)
  • StartOnBoot/LiveReload
  • les fichiers binaires et npm natifs de node.js sont inclus. pas besoin d'être en ligne.

Instruction de mise à jour du noeud js 8 (attente asynchrone)

  1. Téléchargez le fichier zip du fichier node.js v8.3.0 et décompressez-le.

  2. copier le 'noeud' sur la carte SD d'Android (/ sdcard ou/sdcard/path/to/...)

  3. ouvrez le shell (vérifiez-le dans le menu de l'application)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (ou tapez simplement cd && cd .. && cd fichiers/bin)

  5. noeud rm

  6. cp/sdcard/node.

  7. (chmod un + x noeud

( https://play.google.com/store/apps/details?id=io.tempage.dorynode&hl=fr )

14
Sedric Heidarizarei

Vous pouvez utiliser Node.js pour les applications mobiles .

Il fonctionne sur Android appareils et simulateurs, avec des binaires pré-construits pour armeabi-v7a, x86, arm64-v8a, x86_64. Cela fonctionne également sur iOS, bien que cela dépasse le cadre de cette question.

Comme JXcore, il est utilisé pour héberger un moteur Node.js dans le même processus que l'application, dans un thread dédié. Contrairement à JXcore, il s’agit essentiellement de Node.js pur, construit en tant que bibliothèque, avec quelques correctifs de portabilité à exécuter sur Android. Cela signifie qu'il est beaucoup plus facile de maintenir le projet à jour avec Node.js.

Des plugins pour Cordova et React Native sont également disponibles. Les plugins fournissent une couche de communication entre le côté JavaScript de ces frameworks et le côté Node.js. Ils simplifient également le développement en prenant en charge automatiquement certaines tâches, telles que les modules d'empaquetage et la compilation croisée de modules natifs au moment de la construction.

Divulgation complète: je travaille pour la société qui développe Node.js pour les applications mobiles.

9
Alexis Campailla

J2V8 est la meilleure solution à votre problème. Il exécute l'application Nodejs sur jvm (Java et Android).

J2V8 est Java Liaisons pour V8, mais l'intégration de Node.js est disponible dans J2V8 (version 4.4.0)

Github: https://github.com/eclipsesource/J2V8

Exemple: http://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/

9
pathik devani

le tutoriel sur la construction de NodeJS pour Android https://github.com/dna2github/dna2oslab/tree/master/Android/build
il existe plusieurs versions v0.12, v4, v6, v7

Il est facile d’exécuter le binaire compilé sur Android; par exemple, exécutez Nginx compilé: https://github.com/dna2github/dna2mtgol/tree/master/fileShare

Il vous suffit de modifier le code pour remplacer Nginx par NodeJS; il est préférable d'utiliser Android Service pour exécuter le serveur de noeud js sur le serveur.

1
Doz Parp