Então, eu sei que isso foi bastante questionado. Para ser exato, por exemplo, nestas questões:
- Execute o servidor NodeJs no Android
- Como executar meu projeto node.js no android?
e - NodeJS em IOS / Android
Cada opção apresentada tem um problema:
Eu quero executá-lo em meu dispositivo normal, então gostaria de evitar a instalação de outro sistema operacional em meu dispositivo
O trabalho no JXCore foi interrompido no mês passado e (talvez como resultado) eu não consegui compilar (consulte Não é possível instalar o jxcore-cordova )
- A porta Android de NodeJs Anode não é trabalhado desde 2014 e não era realmente mantido naquela época
- A segunda resposta no segundo tópico que eu mencionei, há uma distribuição oficial de nós para Android agora, mas além de um link para o Browse-Website da última dist não consegui encontrar nenhuma informação sobre como realmente usá-lo
- Eu também vi isso, mas parece que o dispositivo precisa estar conectado a um PC (ou semelhante) para executar os comandos adb shell, embora eu gostaria de torná-lo um aplicativo separado
Com o tempo que passou desde que essas perguntas foram postadas e como a "melhor opção", JXCore agora parece estar inutilizável:
Existe uma maneira de executar um aplicativo node.js (um servidor no meu caso) em um dispositivo Android?
se você está se perguntando por que eu iria querer isso: fiz um WebApp com um servidor Node.Js e agora quero uma versão que você possa iniciar localmente de seu telefone sem exigir uma conexão com a Internet. Isso significa que o servidor precisa ser executado em um telefone Android.
Respostas:
Eu só tive um momento de cair o queixo - Termux permite que você instale o NodeJS em um dispositivo Android!
Parece funcionar para um teste básico de velocidade da Websocket que eu tinha em mãos. O http servido por ele pode ser acessado localmente e na rede.
Existe um post médio que explica o processo de instalação
Basicamente: 1. Instale o termux 2. apt install nodejs 3. node it up!
Uma restrição que encontrei - parece que as pastas compartilhadas não têm as permissões necessárias para instalar os módulos. Pode ser apenas uma questão de permissão de arquivo. O armazenamento de aplicativos privados funciona bem.
fonte
Dory - node.js
Excelente novo aplicativo
Não há necessidade de fazer root no seu telefone e você pode executar seu arquivo js de qualquer lugar.
Atualize a instrução para o nó js 8 (espera assíncrona)
Baixe o arquivo compactado node.js v8.3.0 arm e descompacte.
copie 'nó' para sdcard do Android (/ sdcard ou / sdcard / path / to / ...)
abra o shell (verifique no menu do aplicativo)
cd /data/user/0/io.tmpage.dorynode/files/bin (ou, basta digitar cd && cd .. && cd files / bin)
nó rm
cp / sdcard / nó.
(chmod a + x nó
( https://play.google.com/store/apps/details?id=io.tempage.dorynode&hl=en )
fonte
Você pode usar Node.js para aplicativos móveis .
Ele funciona em dispositivos e simuladores Android, com binários pré-construídos para armeabi-v7a, x86, arm64-v8a, x86_64. Também funciona no iOS, embora isso esteja fora do escopo desta questão.
Como o JXcore, ele é usado para hospedar um mecanismo Node.js no mesmo processo do aplicativo, em um thread dedicado. Ao contrário do JXcore, é basicamente Node.js puro, construído como uma biblioteca, com algumas correções de portabilidade para rodar no Android. Isso significa que é muito mais fácil manter o projeto atualizado com o Node.js.
Plugins para Cordova e React Native também estão disponíveis. Os plug-ins fornecem uma camada de comunicação entre o lado JavaScript dessas estruturas e o lado Node.js. Eles também simplificam o desenvolvimento ao cuidar de algumas coisas automaticamente, como empacotar módulos e compilar módulos nativos em tempo de construção.
Divulgação completa: Trabalho para a empresa que desenvolve Node.js para aplicativos móveis.
fonte
npm
suporte a vários arquivos (acabei não usando, mas é bom saber que está disponível). Quase consegui fazercanvas
funcionar, mas eu precisaria realizar alguns passos extras no Linux (atualmente usando Windows) e encontrei uma biblioteca substituta que não requer isso.J2V8 é a melhor solução para seu problema. É executado o aplicativo Nodejs em jvm (java e android).
J2V8 é Java Bindings para V8, mas a integração Node.js está disponível em J2V8 (versão 4.4.0)
Github: https://github.com/eclipsesource/J2V8
Exemplo: http://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/
fonte
o tutorial de como construir NodeJS para Android https://github.com/dna2github/dna2oslab/tree/master/android/build
existem várias versões v0.12, v4, v6, v7
É fácil executar o binário compilado no Android; por exemplo, execute o Nginx compilado: https://github.com/dna2github/dna2mtgol/tree/master/fileShare
Você só precisa modificar o código para substituir Nginx por NodeJS; é melhor usar o serviço Android para executar o servidor node js no backend.
fonte