Menjalankan Node.Js di Android

96

Jadi saya tahu ini telah banyak dipertanyakan. Tepatnya misalnya dalam pertanyaan-pertanyaan ini:

  1. Jalankan server NodeJs di Android
  2. Bagaimana cara menjalankan proyek node.js saya di android?
    dan
  3. NodeJS di IOS / Android

Setiap opsi yang disajikan memiliki masalah:

  • Saya ingin menjalankannya di perangkat normal saya, jadi saya ingin menghindari menginstal OS lain di Perangkat saya

  • Pekerjaan di JXCore dihentikan bulan lalu dan (mungkin akibatnya) saya tidak bisa membuatnya untuk dikompilasi (lihat Tidak dapat menginstal jxcore-cordova )

  • Port Android dari NodeJs Anode belum bekerja sejak 2014 dan tidak benar-benar dipertahankan saat itu
  • Jawaban kedua di utas kedua yang saya tautkan menyebutkan ada distribusi simpul resmi untuk Android sekarang tetapi selain dari tautan ke Situs-Jelajah dari dist terbaru saya tidak dapat menemukan info tentang bagaimana benar-benar menggunakannya
  • Saya juga melihat ini tetapi sepertinya perangkat harus terhubung ke PC (atau serupa) untuk menjalankan perintah shell adb sementara saya ingin menjadikannya sebagai Aplikasi terpisah

Dengan waktu yang berlalu sejak pertanyaan-pertanyaan ini telah diposting dan sebagai "opsi terbaik" JXCore tampaknya sekarang tidak dapat digunakan:
Apakah ada cara untuk menjalankan aplikasi node.js (dalam kasus saya server) pada perangkat Android?

jika Anda bertanya-tanya mengapa saya menginginkan ini: Saya membuat WebApp dengan server Node.Js dan sekarang saya menginginkan versi yang dapat Anda luncurkan secara lokal dari ponsel Anda tanpa memerlukan koneksi Internet. Ini berarti server harus dijalankan di ponsel Android.

MariusR
sumber
1
Hanya karena tertarik, apakah Anda peduli jika orang lain benar-benar dapat menggunakan aplikasi ini atau Anda hanya mencoba membuatnya agar dapat digunakan di ponsel Anda. Karena saya dapat melihat ini membutuhkan banyak pengaturan pada pengguna / klien jika itu bisa berhasil.
zgc7009
1
Saya sangat setuju bahwa jika saya hanya akan menggunakannya di ponsel saya, upaya saya saat ini akan terlalu rumit. Server Node.JS ini adalah semacam Server Aplikasi Web Game kecil sehingga semua orang yang memainkan game harus memiliki akses ke server itu.
MariusR
Anda tidak akan dapat memaketkan server Node.JS ke dalam Android build dan sangat sedikit orang yang secara teknis akan cukup tertarik untuk menginstalnya untuk memainkan game. Jika itu hanya untuk Anda, itu satu hal, tetapi jika itu seharusnya ditingkatkan sama sekali, saya tidak melihat bagaimana ini akan berhasil. Ada banyak aplikasi, terutama game yang tidak hanya membutuhkan koneksi internet, tetapi juga yang kuat.
zgc7009
Saya tahu tapi APP ini di Android hanya untuk saya. Itu tidak akan naik di APP Store atau apa pun. Saya juga akan menyebarkan server ke ruang Web yang dihosting publik. Itulah mengapa saya tidak ingin meniadakan penggunaan node.js.
Keinginan
2
Saya memikirkannya juga, tetapi mengingat server saya sangat bergantung pada kerangka socket.io, itu membuat server di Java lebih sulit. Juga saya sudah memiliki cukup banyak kode di NodeJS ke bawah dan saya tidak merasa ingin menulis ulang sebagian besar darinya. Solusi menggunakan Termux bekerja sangat baik btw dan saya masih menggunakannya untuk tujuan saya meskipun saya harus mengatakan saya tidak akan pernah menggunakannya jika nodejs saya adalah produk sebenarnya yang akan saya jual karena terlalu kikuk untuk itu.
MariusR

Jawaban:

95

Saya baru saja mengalami momen rahang-drop - Termux memungkinkan Anda menginstal NodeJS di perangkat Android!

Tampaknya berfungsi untuk Tes Kecepatan Websocket dasar yang saya miliki. Http yang dilayani olehnya dapat diakses baik secara lokal maupun di jaringan.

Ada posting media yang menjelaskan proses instalasi

Pada dasarnya: 1. Instal termux 2. apt install nodejs 3. node it up!

Satu batasan yang saya alami - tampaknya folder bersama tidak memiliki izin yang diperlukan untuk menginstal modul. Ini mungkin hanya masalah izin file. Penyimpanan aplikasi pribadi berfungsi dengan baik.

Pyro
sumber
5
Yang aneh adalah sudah ada jawaban yang saya terima untuk pertanyaan ini yang menggambarkan hal yang sama yang Anda lakukan tetapi sepertinya itu terhapus karena beberapa alasan. Itu sebabnya saya menerima jawaban Anda ketika saya mulai menggunakan Termux saat itu dan saya masih menggunakannya.
MariusR
6
Terima kasih. Saya terkejut dengan banyaknya pencarian yang harus saya lakukan sebelum menemukan referensi Termux. Utas ini adalah salah satu hasil awal yang saya temukan, jadi saya pikir saya akan menambahkannya di sini untuk memberikan pintasan kepada pencari berikutnya;)
Pyro
Tampaknya boleh saja menghapus jawaban yang diterima dengan 11 suara positif pada pertanyaan yang dilindungi, mungkin karena itu adalah jawaban "hanya tautan", jadi mungkin yang ini juga akan dihapus pada suatu saat ...
jcesarmobile
2
Apakah Anda tahu jika itu akan memungkinkan server untuk tetap berjalan di latar belakang jika Anda keluar dari aplikasi Termux? Bagaimana jika Anda mengunci android? Terima kasih.
wayofthefuture
6
Saya harus membuat $ apt update $ apt upgrade sebelum menemukan nodejs Saya menggunakannya pada HUAWEI Note 6
M.Hefny
16

Dory - node.js

Aplikasi Baru yang Hebat
Tidak Perlu Melakukan Root pada Ponsel Anda dan Anda Dapat Menjalankan File Js Anda Dari Mana Saja.

  • node.js runtime (jalankan ES2015 / ES6, ES2016 javascript, dan node.js API di android)
  • Dokumen API dan kode instan dijalankan dari doc
  • editor kode penyorotan sintaks
  • npm mendukung
  • terminal linux (kotak mainan 0.7.4). node.js REPL dan perintah npm di shell (tambahkan opsi '--no-bin-links' jika Anda menjalankan npm di / sdcard)
  • StartOnBoot / LiveReload
  • node.js asli biner dan npm disertakan. tidak perlu online.

Perbarui instruksi ke node js 8 (async await)

  1. Unduh file zip lengan node.js v8.3.0 dan unzip.

  2. salin 'node' ke sdcard android (/ sdcard atau / sdcard / path / to / ...)

  3. buka shell (lihat di menu aplikasi)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (atau, cukup ketik cd && cd .. && cd files / bin)

  5. rm node

  6. cp / sdcard / node.

  7. (chmod a + x node

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

Sedric Heidarizarei
sumber
2
tampaknya mengalami beberapa masalah dalam menjalankan npm install, mengeluhkan tidak adanya akses ke "/" dan akses hanya-baca ke FS, misalnya.
Michael
Hubungi mereka: ([email protected])
Sedric Heidarizarei
Tampaknya hanya mendukung Node versi yang sangat lama. Sekitar 6.x sementara saat ini seperti yang saya posting ini adalah 10.x / 11.x
hippietrail
memperbarui jauh lebih mudah sekarang: <pre> upgrade node.js: menu 'download file' -> periksa 'appfiles' -> centang 'executable' 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 (hanya untuk android 5.0 di atas): dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 arm (hanya untuk android 5.0 di atas) : dorynode.firebaseapp.com/v10.15.1_arm_release/node lihat myket.ir/app/io.tempage.dorynode?lang=id </pre>
Kay Marquardt
Menjalankan aplikasi Node rata-rata di ponsel Anda sepertinya cara yang bagus untuk mengisi penyimpanan internalnya :) Tapi katakanlah saya memiliki aplikasi server kecil yang tidak memerlukan dir ./node_modules dan dijalankan dari ./dist via nps serve dist. Akankah itu berjalan (secara teori) dan jika demikian bagaimana cara saya memasukkannya ke telepon di lokasi yang tepat?
RJVB
15

Anda dapat menggunakan Node.js untuk Aplikasi Seluler .

Ini berfungsi pada perangkat dan simulator Android, dengan biner yang telah dibuat sebelumnya untuk armeabi-v7a, x86, arm64-v8a, x86_64. Ini juga berfungsi di iOS, meskipun itu di luar cakupan pertanyaan ini.

Seperti JXcore, ini digunakan untuk menghosting mesin Node.js dalam proses yang sama seperti aplikasi, di utas khusus. Tidak seperti JXcore, ini pada dasarnya adalah Node.js murni, dibuat sebagai pustaka, dengan beberapa perbaikan portabilitas untuk dijalankan di Android. Ini berarti jauh lebih mudah untuk menjaga proyek tetap mutakhir dengan jalur utama Node.js.

Plugin untuk Cordova dan React Native juga tersedia. Plugin menyediakan lapisan komunikasi antara sisi JavaScript dari kerangka kerja tersebut dan sisi Node.js. Mereka juga menyederhanakan pengembangan dengan menangani beberapa hal secara otomatis, seperti modul pengemasan dan kompilasi silang modul asli pada waktu pembuatan.

Pengungkapan penuh: Saya bekerja untuk perusahaan yang mengembangkan Node.js untuk Aplikasi Seluler.

Alexis Campailla
sumber
Terima kasih, bagus! Sepenuhnya memenuhi kebutuhan saya dengan npmdan dukungan banyak file (akhirnya tidak menggunakan, tetapi senang mengetahui bahwa itu tersedia). Hampir berhasil membuat canvaspekerjaan, tetapi saya perlu mengambil beberapa langkah tambahan di Linux (saat ini menggunakan Windows) dan saya menemukan perpustakaan pengganti yang tidak memerlukannya.
GuiRitter
Hai, Alexis. Akankah ini berjalan cepat?
mahesh
Hai @mahesh, Anda pasti bisa menggunakan ekspres. Menjalankan server http dan komunikasi p2p (misalnya dengan websockets) adalah skenario yang sangat umum untuk menggunakan nodejs-mobile. Jika Anda ingin menggunakan Cordova, Anda mungkin menemukan aplikasi contoh ini berguna karena menggunakan express: github.com/JaneaSystems/nodejs-mobile-samples/blob/…
Alexis Campailla
1

tutorial cara build NodeJS untuk Android https://github.com/dna2github/dna2oslab/tree/master/android/build
ada beberapa versi v0.12, v4, v6, v7

Sangat mudah untuk menjalankan biner terkompilasi di Android; misalnya, jalankan Nginx yang dikompilasi: https://github.com/dna2github/dna2mtgol/tree/master/fileShare

Anda hanya perlu memodifikasi kode untuk mengganti Nginx menjadi NodeJS; ada baiknya jika menggunakan Android Service untuk menjalankan server node js di backend.

Doz Parp
sumber
..... memodifikasi kode untuk mengganti Nginx menjadi NodeJS .... akan lebih baik jika Anda menunjukkan contoh bagaimana melakukan ini.
Edijae Crusar