Executando Node.Js no Android

95

Então, eu sei que isso foi bastante questionado. Para ser exato, por exemplo, nestas questões:

  1. Execute o servidor NodeJs no Android
  2. Como executar meu projeto node.js no android?
    e
  3. 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.

MariusR
fonte
1
Só por interesse, você se importa se mais alguém pode realmente usar este aplicativo ou se você está apenas tentando fazê-lo para que possa usá-lo em seu telefone. Pq eu posso ver isso tomando muita configuração por parte dos usuários / clientes se puder funcionar.
zgc7009
1
Eu concordo totalmente que se eu apenas o usasse no meu telefone, minha tentativa atual seria muito complicada. Este servidor Node.JS, entretanto, é uma espécie de pequeno servidor de aplicativos da Web para jogos, de modo que todos os que estiverem jogando devem ter acesso a esse servidor.
MariusR
Você não será capaz de agrupar um servidor Node.JS em uma compilação do Android e muito poucas pessoas estarão tecnicamente inclinadas o suficiente para instalá-lo para jogar um jogo. Se for só para você, isso é uma coisa, mas se for para ser escalado, não vejo como isso vai funcionar. Existem muitos aplicativos, principalmente jogos que exigem não apenas uma conexão com a Internet, mas também uma conexão forte.
zgc7009
Eu sei, mas este APP no Android é só para mim. Não vai aparecer em nenhuma APP Store nem nada. Também implantarei o servidor em um espaço da Web público hospedado. É por isso que não quero negar o uso de node.js. A vontade de fazer uma versão offline era eu pensando "e se eu quiser jogar com meus amigos offline '.
MariusR
2
Eu pensei sobre isso também, mas considerando que meu servidor depende muito da estrutura socket.io, isso tornou a criação do servidor em Java muito mais difícil. Além disso, eu já tinha bastante código em NodeJS instalado e não estava com vontade de reescrever grande parte dele. A solução usando Termux funciona extremamente bem btw e eu ainda uso para meu propósito, embora eu deva dizer que nunca usaria se meu nodejs fosse um produto real que eu venderia, pois é muito desajeitado para isso.
MariusR

Respostas:

88

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.

Pyro
fonte
5
O estranho é que já havia uma resposta que eu aceitei para essa pergunta que descrevia a mesma coisa que você, mas parece que foi excluída por algum motivo. É por isso que aceitei sua resposta, pois comecei a usar o Termux naquela época e ainda estou usando.
MariusR
6
Obrigado. Fiquei surpreso com a quantidade de pesquisas que tive que fazer antes de encontrar uma referência do Termux. Este tópico foi um dos primeiros resultados que encontrei, então pensei em adicioná-lo aqui para dar ao próximo pesquisador um atalho;)
Pyro
Parece que não há problema em excluir a resposta aceita com 11 votos positivos em uma pergunta protegida, provavelmente porque era uma resposta "somente link", então provavelmente esta também será excluída em algum momento ...
jcesarmobile
2
Você sabe se isso permitirá que o servidor continue funcionando em segundo plano se você sair do aplicativo Termux? Que tal quando você bloquear o Android? Obrigado.
caminho do futuro
5
Tive que fazer $ apt update $ apt upgrade antes de encontrar o nodejs. Usei-o no HUAWEI Nota 6
M.Hefny
16

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.

  • runtime do node.js (execute as APIs ES2015 / ES6, ES2016 javascript e node.js no android)
  • Documentos API e código instantâneo executado a partir de doc
  • editor de código de destaque de sintaxe
  • suporta npm
  • terminal Linux (toybox 0.7.4). node.js REPL e comando npm no shell (adicione a opção '--no-bin-links' se você executar npm em / sdcard)
  • StartOnBoot / LiveReload
  • binário node.js nativo e npm estão incluídos. não há necessidade de estar online.

Atualize a instrução para o nó js 8 (espera assíncrona)

  1. Baixe o arquivo compactado node.js v8.3.0 arm e descompacte.

  2. copie 'nó' para sdcard do Android (/ sdcard ou / sdcard / path / to / ...)

  3. abra o shell (verifique no menu do aplicativo)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (ou, basta digitar cd && cd .. && cd files / bin)

  5. nó rm

  6. cp / sdcard / nó.

  7. (chmod a + x nó

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

Sedric Heidarizarei
fonte
2
parece ter alguns problemas ao executar o npm install, reclamou sobre não ter acesso a "/" e acesso somente leitura ao FS, por exemplo.
Michael
Contate-os: ([email protected])
Sedric Heidarizarei
Parece suportar apenas uma versão muito antiga do Node. Cerca de 6.x enquanto eu postar isso é 10.x / 11.x
hippietrail
atualizar é muito mais fácil agora: <pre> atualizar node.js: 'download file' menu -> check 'appfiles' -> check 'executável' v6.12.3 arm: dorynode.firebaseapp.com/v6.12.3_arm_release/node v8. 3.0 arm: dorynode.firebaseapp.com/v8.3.0_arm_release/node v8.9.4 arm (apenas para android 5.0 acima): dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 arm (apenas para android 5.0 acima) : dorynode.firebaseapp.com/v10.15.1_arm_release/node veja myket.ir/app/io.tempage.dorynode?lang=en </pre>
Kay Marquardt
13

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.

Alexis Campailla
fonte
Obrigado, funciona muito bem! Totalmente satisfeito com minhas necessidades com npmsuporte a vários arquivos (acabei não usando, mas é bom saber que está disponível). Quase consegui fazer canvasfuncionar, mas eu precisaria realizar alguns passos extras no Linux (atualmente usando Windows) e encontrei uma biblioteca substituta que não requer isso.
GuiRitter
Oi, Alexis. Esta corrida vai expressar?
mahesh
Olá @mahesh, com certeza você pode usar o Express. A execução de um servidor http e comunicações p2p (por exemplo, com websockets) são cenários muito comuns para o uso do nodejs-mobile. Caso queira usar o Cordova, você pode achar este aplicativo de exemplo útil, pois usa o expresso: github.com/JaneaSystems/nodejs-mobile-samples/blob/…
Alexis Campailla
1

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.

Doz Parp
fonte
..... modifique o código para substituir Nginx por NodeJS .... seria melhor se você mostrasse um exemplo de como fazer isso.
Edijae Crusar