Entonces sé que esto se ha cuestionado bastante. Para ser exactos por ejemplo en estas preguntas:
- Ejecute el servidor NodeJs en Android
- ¿Cómo ejecutar mi proyecto node.js en Android?
y - NodeJS en IOS / Android
Sin embargo, cada opción presentada tiene un problema:
Quiero ejecutarlo en mi dispositivo normal, así que me gustaría evitar instalar otro sistema operativo en mi dispositivo
El trabajo en JXCore se detuvo el mes pasado y (tal vez como resultado) no pude compilarlo (consulte No se puede instalar jxcore-cordova )
- El puerto de Android nodejs ánodo no se ha trabajado desde 2014 y en realidad no estaba mantenido en ese entonces de todos modos
- La segunda respuesta en el segundo hilo al que me vinculé mencionó que ahora hay una distribución oficial de nodos para Android, pero aparte de un enlace al sitio web de navegación del último dist, no pude encontrar ninguna información sobre cómo usarlo realmente
- También vi esto, pero parece que el dispositivo tiene que estar conectado a una PC (o similar) para ejecutar los comandos de adb shell, mientras que me gustaría hacerlo como una aplicación separada.
Con el tiempo que pasó desde que se publicaron estas preguntas y como la "mejor opción", JXCore parece ahora inutilizable:
¿Hay alguna forma de ejecutar una aplicación node.js (un servidor en mi caso) en un dispositivo Android?
Si se pregunta por qué querría esto: hice una aplicación web con un servidor Node.Js y ahora quiero una versión que pueda ejecutar localmente desde su teléfono sin necesidad de una conexión a Internet. Esto significa que el servidor debe ejecutarse en un teléfono Android.
Respuestas:
Acabo de tener un momento de asombro : ¡ Termux te permite instalar NodeJS en un dispositivo Android!
Parece funcionar para una prueba de velocidad básica de Websocket que tenía a mano. Se puede acceder al http servido por él tanto localmente como en la red.
Hay una publicación mediana que explica el proceso de instalación.
Básicamente: 1. Instale termux 2. apt install nodejs 3. ¡enciéndalo!
Me he encontrado con una restricción: parece que las carpetas compartidas no tienen los permisos necesarios para instalar módulos. Podría ser solo una cuestión de permiso de archivo. El almacenamiento de la aplicación privada funciona bien.
fuente
Dory - node.js
Gran aplicación nueva
No es necesario rootear su teléfono y puede ejecutar su archivo js desde cualquier lugar.
Actualice la instrucción al nodo js 8 (async await)
Descargue el archivo zip de node.js v8.3.0 arm y descomprímalo.
copiar 'nodo' a la tarjeta sd de Android (/ sdcard o / sdcard / ruta / a / ...)
abre el caparazón (compruébalo en el menú de la aplicación)
cd /data/user/0/io.tmpage.dorynode/files/bin (o simplemente escriba cd && cd .. && cd files / bin)
nodo rm
cp / sdcard / node.
(chmod a + x nodo
( https://play.google.com/store/apps/details?id=io.tempage.dorynode&hl=en )
fuente
Puede utilizar Node.js para aplicaciones móviles .
Funciona en dispositivos y simuladores Android, con binarios prediseñados para armeabi-v7a, x86, arm64-v8a, x86_64. También funciona en iOS, aunque eso está fuera del alcance de esta pregunta.
Al igual que JXcore, se utiliza para alojar un motor Node.js en el mismo proceso que la aplicación, en un hilo dedicado. A diferencia de JXcore, es básicamente Node.js puro, construido como una biblioteca, con algunas correcciones de portabilidad para ejecutarse en Android. Esto significa que es mucho más fácil mantener el proyecto actualizado con la línea principal de Node.js.
Los complementos para Cordova y React Native también están disponibles. Los complementos proporcionan una capa de comunicación entre el lado de JavaScript de esos marcos y el lado de Node.js. También simplifican el desarrollo al encargarse de algunas cosas automáticamente, como módulos de empaquetado y módulos nativos de compilación cruzada en el momento de la compilación.
Divulgación completa: trabajo para la empresa que desarrolla Node.js para aplicaciones móviles.
fuente
npm
y soporte para múltiples archivos (terminé sin usar, pero es bueno saber que está disponible). Casi me las arreglé para hacer elcanvas
trabajo, pero necesitaría tomar algunos pasos adicionales en Linux (actualmente usando Windows) y encontré una biblioteca de reemplazo que no lo requiere.J2V8 es la mejor solución a su problema. Ejecuta la aplicación Nodejs en jvm (java y android).
J2V8 es Java Bindings para V8, pero la integración de Node.js está disponible en J2V8 (versión 4.4.0)
Github: https://github.com/eclipsesource/J2V8
Ejemplo: http://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/
fuente
el tutorial de cómo construir NodeJS para Android https://github.com/dna2github/dna2oslab/tree/master/android/build
hay varias versiones v0.12, v4, v6, v7
Es fácil ejecutar binarios compilados en Android; por ejemplo, ejecute Nginx compilado: https://github.com/dna2github/dna2mtgol/tree/master/fileShare
Solo necesita modificar el código para reemplazar Nginx a NodeJS; es mejor si usa Android Service para ejecutar el servidor node js en el backend.
fuente