Esecuzione di Node.Js su Android


95

Quindi so che questo è stato messo in discussione parecchio. Per essere esatti, ad esempio, in queste domande:

  1. Esegui il server NodeJs su Android
  2. Come eseguire il mio progetto node.js su Android?
    e
  3. NodeJS su IOS / Android

Ogni opzione presentata presenta però un problema:

  • Voglio eseguirlo sul mio dispositivo normale, quindi vorrei evitare di installare un altro sistema operativo sul mio dispositivo

  • Il lavoro su JXCore è stato interrotto il mese scorso e (forse di conseguenza) non sono riuscito a farlo compilare (vedere Impossibile installare jxcore-cordova )

  • Il porto Android di NodeJs Anode non è stato lavorato dal 2014 e comunque non è stato mantenuto
  • La seconda risposta nel secondo thread a cui ho collegato ha menzionato che ora esiste una distribuzione di nodi ufficiale per Android ma a parte un collegamento al sito Web di navigazione dell'ultima distribuzione non sono riuscito a trovare alcuna informazione su come utilizzarlo effettivamente
  • Ho visto anche questo ma sembra che il dispositivo debba essere collegato a un PC (o simile) per eseguire i comandi della shell adb mentre vorrei renderlo come app separata

Con il tempo passato da quando queste domande sono state pubblicate e come "la migliore opzione" JXCore sembra essere ormai inutilizzabile:
c'è un modo per eseguire un'applicazione node.js (un server nel mio caso) su un dispositivo Android?

se ti stai chiedendo perché vorrei questo: ho creato una WebApp con un server Node.Js e ora voglio una versione che puoi avviare localmente dal tuo telefono senza richiedere una connessione Internet. Ciò significa che il server deve essere eseguito su un telefono Android.


1
Solo per interesse, ti interessa se qualcun altro può effettivamente utilizzare questa app o stai solo cercando di farlo in modo da poterlo utilizzare sul tuo telefono. Perché posso vedere che questo richiede un sacco di impostazioni sugli utenti / client se potesse funzionare.
zgc7009

1
Sono totalmente d'accordo sul fatto che se lo usassi sul mio telefono il mio tentativo attuale sarebbe troppo complicato. Questo server Node.JS è una sorta di piccolo server di applicazioni Web per giochi, quindi tutti coloro che giocano al gioco dovrebbero avere accesso a quel server.
MariusR

Non sarai in grado di raggruppare un server Node.JS in una build Android e pochissime persone saranno tecnicamente abbastanza inclini da installarlo per giocare. Se è solo per te questa è una cosa, ma se si suppone che sia ridimensionato non vedo come funzionerà. Ci sono molte app, in particolare giochi che richiedono non solo una connessione Internet, ma anche una forte.
zgc7009

Lo so, ma questa APP su Android è solo per me. Non salirà su alcun APP Store o altro. Distribuirò anche il server in uno spazio Web ospitato pubblicamente. Ecco perché non voglio negare l'utilizzo di node.js. La volontà di creare una versione offline era che pensavo "e se volessi giocare con i miei amici offline".
MariusR

2
Ho pensato anche a questo, ma considerando che il mio server si basa molto sul framework socket.io ha reso la creazione del server in Java molto più difficile. Inoltre avevo già un bel po 'di codice in NodeJS e non avevo voglia di riscriverne gran parte. La soluzione che utilizza Termux funziona estremamente bene e la uso ancora per il mio scopo, anche se devo dire che non l'avrei mai usata se il mio nodejs fosse un prodotto reale che venderei perché è troppo goffo per quello.
MariusR

Risposte:


88

Ho appena avuto un momento sbalorditivo : Termux ti consente di installare NodeJS su un dispositivo Android!

Sembra funzionare per un Websocket Speed ​​Test di base che avevo a portata di mano. L'http da esso servito è accessibile sia localmente che in rete.

C'è un post medio che spiega il processo di installazione

Fondamentalmente: 1. Installa termux 2. apt installa nodejs 3. crea un nodo!

Una restrizione in cui mi sono imbattuto: sembra che le cartelle condivise non abbiano le autorizzazioni necessarie per installare i moduli. Potrebbe essere solo una questione di autorizzazione dei file. L'archiviazione privata dell'app funziona perfettamente.


5
La cosa strana è che c'era già una risposta che ho accettato per questa domanda che descriveva la stessa cosa che hai fatto tu ma sembra che sia stata cancellata per qualche motivo. Ecco perché ho accettato la tua risposta quando ho iniziato a usare Termux allora e lo sto ancora usando.
MariusR

6
Grazie. Sono rimasto sorpreso da quante ricerche ho dovuto fare prima di imbattermi in un riferimento a Termux. Questo thread è stato uno dei primi risultati in cui mi sono imbattuto, quindi ho pensato di aggiungerlo qui per dare una scorciatoia al prossimo cercatore;)
Pyro

Sembra che vada bene eliminare la risposta accettata con 11 voti positivi su una domanda protetta, probabilmente perché era una risposta "solo collegamento", quindi probabilmente anche questa verrà eliminata ad un certo punto ...
jcesarmobile

2
Sai se consentirà al server di continuare a funzionare in background se esci dall'app Termux? Che ne dici di quando blocchi l'androide? Grazie.
futuro

5
Ho dovuto fare $ apt update $ apt upgrade prima che trovasse nodejs L'ho usato su HUAWEI Note 6
M.Hefny

16

Dory - node.js

Nuova fantastica applicazione
Non è necessario eseguire il root del telefono e puoi eseguire il tuo file js da qualsiasi luogo.

  • Runtime node.js (esegui ES2015 / ES6, ES2016 javascript e API node.js in Android)
  • Documenti API e codice istantaneo eseguiti da doc
  • evidenziazione della sintassi editor di codice
  • npm supporta
  • terminale linux (scatola dei giocattoli 0.7.4). node.js REPL e comando npm nella shell (aggiungi l'opzione '--no-bin-links' se esegui npm in / sdcard)
  • StartOnBoot / LiveReload
  • binario nativo node.js e npm sono inclusi. non è necessario essere online.

Aggiorna l'istruzione al nodo js 8 (async await)

  1. Scarica il file zip del braccio node.js v8.3.0 e decomprimilo.

  2. copia 'node' nella sdcard di Android (/ sdcard o / sdcard / path / to / ...)

  3. apri la shell (controlla nel menu dell'app)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (o digita semplicemente cd && cd .. && cd files / bin)

  5. nodo rm

  6. cp / sdcard / node.

  7. (chmod a + x node

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


2
sembra avere alcuni problemi durante l'installazione di npm, si è lamentato del mancato accesso a "/" e dell'accesso di sola lettura a FS, per esempio.
Michael

Contattali: (tempage.io@gmail.com)
Sedric Heidarizarei

Sembra supportare solo una versione molto vecchia di Node. Circa 6.x mentre attualmente
inserisco

l'aggiornamento è molto più semplice ora: <pre> aggiorna node.js: menu 'download file' -> controlla 'appfiles' -> controlla 'eseguibile' 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 (solo per android 5.0 sopra): dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 arm (solo per android 5.0 sopra) : dorynode.firebaseapp.com/v10.15.1_arm_release/node vedi myket.ir/app/io.tempage.dorynode?lang=en </pre>
Kay Marquardt

13

Puoi utilizzare Node.js per le app mobili .

Funziona su dispositivi e simulatori Android, con binari predefiniti per armeabi-v7a, x86, arm64-v8a, x86_64. Funziona anche su iOS, anche se non rientra nell'ambito di questa domanda.

Come JXcore, viene utilizzato per ospitare un motore Node.js nello stesso processo dell'app, in un thread dedicato. A differenza di JXcore, è fondamentalmente puro Node.js, costruito come una libreria, con alcune correzioni per la portabilità da eseguire su Android. Ciò significa che è molto più facile mantenere aggiornato il progetto con la linea principale Node.js.

Sono disponibili anche plugin per Cordova e React Native . I plugin forniscono un livello di comunicazione tra il lato JavaScript di questi framework e il lato Node.js. Inoltre semplificano lo sviluppo occupandosi di alcune cose automaticamente, come i moduli di pacchettizzazione e la compilazione incrociata di moduli nativi in ​​fase di compilazione.

Divulgazione completa: lavoro per l'azienda che sviluppa Node.js per le app mobili.


Grazie, funziona benissimo! Soddisfatto pienamente le mie esigenze npme il supporto di più file (alla fine non l'ho utilizzato, ma è bello sapere che è disponibile). Sono quasi riuscito a far canvasfunzionare, ma avrei bisogno di eseguire alcuni passaggi aggiuntivi in ​​Linux (attualmente utilizzando Windows) e ho trovato una libreria sostitutiva che non lo richiede.
GuiRitter

Ciao, Alexis. Questa corsa sarà rapida?
Mahesh

Ciao @mahesh, puoi sicuramente usare express. L'esecuzione di un server http e le comunicazioni p2p (ad esempio con websocket) sono scenari molto comuni per l'utilizzo di nodejs-mobile. Nel caso in cui desideri utilizzare Cordova, potresti trovare utile questa app di esempio in quanto utilizza express: github.com/JaneaSystems/nodejs-mobile-samples/blob/…
Alexis Campailla


1

il tutorial su come costruire NodeJS per Android https://github.com/dna2github/dna2oslab/tree/master/android/build
ci sono diverse versioni v0.12, v4, v6, v7

È facile eseguire file binari compilati su Android; ad esempio esegui Nginx compilato: https://github.com/dna2github/dna2mtgol/tree/master/fileShare

Hai solo bisogno di modificare il codice per sostituire Nginx a NodeJS; è meglio se si utilizza il servizio Android per eseguire il server node js sul backend.


..... modifica il codice per sostituire Nginx in NodeJS .... sarebbe meglio se mostrassi un esempio su come farlo.
Edijae Crusar

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.