Donc, je sais que cela a été beaucoup remis en question. Pour être exact par exemple dans ces questions:
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 )
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.
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.
Grande nouvelle application
Pas besoin de rooter votre téléphone et vous pouvez exécuter votre fichier js depuis anywere.
Instruction de mise à jour du noeud js 8 (attente asynchrone)
Téléchargez le fichier zip du fichier node.js v8.3.0 et décompressez-le.
copier le 'noeud' sur la carte SD d'Android (/ sdcard ou/sdcard/path/to/...)
ouvrez le shell (vérifiez-le dans le menu de l'application)
cd /data/user/0/io.tmpage.dorynode/files/bin (ou tapez simplement cd && cd .. && cd fichiers/bin)
noeud rm
cp/sdcard/node.
(chmod un + x noeud
( https://play.google.com/store/apps/details?id=io.tempage.dorynode&hl=fr )
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.
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/
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.