Node.Js'yi Android'de Çalıştırma


100

Bu yüzden bunun epeyce sorgulandığını biliyorum. Örneğin bu sorularda kesin olmak gerekirse:

  1. NodeJs sunucusunu Android'de çalıştırın
  2. Node.js projemi android üzerinde nasıl çalıştırırım?
    ve
  3. IOS / Android'de NodeJS

Ancak sunulan her seçeneğin bir sorunu vardır:

  • Normal cihazımda çalıştırmak istiyorum, bu yüzden Cihazıma başka bir işletim sistemi kurmaktan kaçınmak istiyorum

  • JXCore üzerinde çalışma geçen ay durduruldu ve (belki sonuç olarak) onu derleyemedim (bkz. Jxcore-cordova yüklenemiyor )

  • NodeJs ait Android Liman Anot 2014 yılından beri üzerinde çalıştığı edilmemiştir ve gerçekten her durumda sonra tekrar devam edildi
  • Bağlandığım ikinci başlıktaki ikinci cevap, şu anda Android için resmi bir düğüm dağıtımı var, ancak en son dağıtımın Göz Atma Web Sitesine bir bağlantı dışında, gerçekten nasıl kullanılacağına dair herhangi bir bilgi bulamadım.
  • Ben de gördüm bu ancak cihaz bir PC (veya benzeri) bağlı olması gerekir gibi ben ayrı Uygulaması olarak bunu yapmak istemekle birlikte adb shell komutları çalıştırmak gibi görünüyor

Bu soruların gönderilmesinden bu yana geçen zamanla ve "en iyi seçenek" olarak JXCore artık kullanılamaz görünüyor:
Bir Android cihazda bir node.js uygulamasını (benim durumumda bir sunucu) çalıştırmanın bir yolu var mı?

Neden bunu isteyeceğimi merak ediyorsanız: Node.Js sunucusuyla bir WebApp yaptım ve şimdi telefonunuzdan İnternet bağlantısı gerektirmeden yerel olarak başlatabileceğiniz bir sürüm istiyorum. Bu, sunucunun bir Android telefonda çalışması gerektiği anlamına gelir.


1
Sadece ilgilendiğiniz için, bu uygulamayı başka birinin gerçekten kullanıp kullanamayacağına mı dikkat ediyorsunuz yoksa sadece onu telefonunuzda kullanabilmek için yapmaya mı çalışıyorsunuz? Çünkü eğer işe yarayabilirse, bunun kullanıcılar / istemciler üzerinde çok fazla kurulum aldığını görebiliyorum.
zgc7009

1
Telefonumda kullanırsam şu anki girişimimin çok karmaşık olacağını kesinlikle kabul ediyorum. Bu Node.JS Sunucusu, bir tür küçük Oyun Web Uygulama Sunucusudur, bu nedenle oyunu oynayan herkesin bu sunucuya erişmesi gerekir.
MariusR

Bir Node.JS sunucusunu bir Android yapısına paketleyemeyeceksiniz ve çok az kişi teknik olarak onu bir oyun oynamak için kuracak kadar eğimli olacak. Sadece senin içinse bu bir şeydir, ama eğer ölçeklendirilmesi gerekiyorsa bunun nasıl çalışacağını anlamıyorum. Özellikle sadece internet bağlantısı değil aynı zamanda güçlü bir internet bağlantısı gerektiren oyunlar olmak üzere birçok uygulama var.
zgc7009

Biliyorum ama Android'deki bu APP sadece benim için. Herhangi bir APP Store'da veya herhangi bir yerde görünmez. Ayrıca sunucuyu halka açık bir Web Alanına da yerleştireceğim. Bu yüzden node.js kullanmaktan vazgeçmek istemiyorum. Çevrimdışı Sürüm yapma isteği, "
Ya

2
Bunu da düşündüm, ancak sunucumun büyük ölçüde socket.io çerçevesine dayandığını düşünürsek, sunucuyu Java'da oluşturmayı zorlaştırdı. Ayrıca NodeJS'de zaten çok fazla koda sahiptim ve büyük bir bölümünü yeniden yazmak istemedim. Termux kullanan çözüm son derece iyi çalışıyor ve hala amacım için kullanıyorum, ancak nodej'lerim bunun için çok hantal olduğu için satacağım gerçek bir ürün olsaydı asla kullanmayacağımı söylemeliyim.
MariusR

Yanıtlar:


96

Az önce çene bırakma anım oldu - Termux, bir Android cihaza NodeJS yüklemenize izin veriyor!

Elimde yaptığım temel bir Websocket Hız Testi için çalışıyor gibi görünüyor . Hizmet verdiği http'ye hem yerel olarak hem de ağ üzerinden erişilebilir.

Bir yoktur yükleme işlemini açıklar orta sonrası

Temel olarak: 1. termux'u kurun 2. apt install nodejs 3. node it up!

Karşılaştığım bir kısıtlama - paylaşılan klasörlerin modül yüklemek için gerekli izinlere sahip olmadığı görülüyor. Sadece bir dosya izni olabilir. Özel uygulama depolama alanı gayet iyi çalışıyor.


5
İşin garibi, bu soru için zaten kabul ettiğim ve yaptığınız şeyi anlatan bir cevabın olması ama bir sebepten silinmiş gibi görünüyor. Bu yüzden o zamanlar Termux kullanmaya başladığımda cevabınızı kabul ettim ve hala kullanıyorum.
MariusR

6
Teşekkürler. Bir Termux referansına rastlamadan önce ne kadar arama yapmam gerektiğine şaşırdım. Bu ileti dizisi, karşılaştığım ilk sonuçlardan biriydi, bu yüzden bir sonraki arayana bir kısayol vermek için buraya eklememe rağmen;)
Pyro

Görünüşe göre, korunan bir soruya verilen 11 olumlu oyla kabul edilen yanıtı silmenin uygun olduğu görülüyor, çünkü muhtemelen bu bir "yalnızca bağlantı" yanıtıydı, bu nedenle muhtemelen bu da bir noktada silinecek ...
jcesarmobile

2
Termux uygulamasından çıkarsanız, sunucunun arka planda çalışmaya devam etmesine izin verip vermeyeceğini biliyor musunuz? Android'i ne zaman kilitlesen? Teşekkürler.
wayofthefuture

6
$ Apt update $ apt yükseltmesini nodej'leri bulmadan önce yapmak zorunda kaldım HUAWEI Note 6'da kullandım
M.Hefny

17

Dory - node.js

Harika Yeni Uygulama
Telefonunuzu Köklendirmenize Gerek Yok ve js Dosyanızı Herhangi Bir Yerden Çalıştırabilirsiniz.

  • node.js çalışma zamanı (android'de ES2015 / ES6, ES2016 javascript ve node.js API'lerini çalıştırın)
  • API Belgeleri ve anında kod, doc'tan çalıştırılır
  • sözdizimi vurgulayan kod düzenleyici
  • npm destekler
  • linux terminali (toybox 0.7.4). node.js REPL ve kabukta npm komutu (/ sdcard içinde npm çalıştırırsanız '--no-bin-links' seçeneğini ekleyin)
  • StartOnBoot / LiveReload
  • yerel node.js ikili dosyası ve npm dahildir. çevrimiçi olmaya gerek yok.

Js 8 düğümüne yönelik güncelleme talimatı (zaman uyumsuz bekleme)

  1. Node.js v8.3.0 arm zip dosyasını indirin ve sıkıştırmayı açın.

  2. 'düğümü' android'in sdcard'ına kopyala (/ sdcard veya / sdcard / yol / to / ...)

  3. kabuğu açın (uygulamanın menüsünde kontrol edin)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (veya sadece cd && cd .. && cd dosyaları / bin yazın)

  5. rm düğümü

  6. cp / sdcard / düğüm.

  7. (chmod a + x düğümü

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


2
npm kurulumunu çalıştıran bazı sorunlar var gibi görünüyor, örneğin "/" ve FS'ye salt okunur erişim olmadığından şikayet edildi.
Michael

Onlarla iletişime geçin: (tempage.io@gmail.com)
Sedric Heidarizarei

Node'un yalnızca çok eski bir sürümünü destekliyor gibi görünüyor. Yaklaşık 6.x yayınladığım süre boyunca bu 10.x / 11.x
hippietrail

güncelleme şimdi çok daha kolay: <pre> yükseltme node.js: 'dosya indir' menüsü -> 'uygulama dosyalarını' kontrol et -> 'yürütülebilir' v6.12.3'ü kontrol et arm: dorynode.firebaseapp.com/v6.12.3_arm_release/node v8. 3.0 kolu: dorynode.firebaseapp.com/v8.3.0_arm_release/node v8.9.4 kolu (yalnızca yukarıdaki android 5.0 için): dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 kolu (yalnızca yukarıdaki Android 5.0 için) : dorynode.firebaseapp.com/v10.15.1_arm_release/node bkz. myket.ir/app/io.tempage.dorynode?lang=en </pre>
Kay Marquardt

Telefonunuzda ortalama Node uygulamasını çalıştırmak, dahili depolama alanını doldurmanın harika bir yolu gibi görünüyor :) Ancak bir ./node_modules dizini gerektirmeyen ve ./dist üzerinden çalışan küçük bir sunucu uygulamam olduğunu varsayalım nps serve dist. Bu çalışacak mı (teoride) ve eğer öyleyse doğru yerde telefona nasıl aktarabilirim?
RJVB

16

Mobil Uygulamalar için Node.js'yi kullanabilirsiniz .

Armeabi-v7a, x86, arm64-v8a, x86_64 için önceden oluşturulmuş ikili dosyalar ile Android cihazlarda ve simülatörlerde çalışır. Bu sorunun kapsamı dışında olsa da iOS'ta da çalışır.

JXcore gibi, uygulama ile aynı süreçte bir Node.js motorunu özel bir iş parçacığında barındırmak için kullanılır. JXcore'un aksine, temelde saf Node.js, bir kitaplık olarak oluşturulmuş ve Android'de çalıştırılacak birkaç taşınabilirlik düzeltmesi ile. Bu, projeyi mainline Node.js ile güncel tutmanın çok daha kolay olduğu anlamına gelir.

Cordova ve React Native için eklentiler de mevcuttur. Eklentiler, bu çerçevelerin JavaScript tarafı ile Node.js tarafı arasında bir iletişim katmanı sağlar. Ayrıca, paketleme modülleri ve derleme sırasında yerel modülleri çapraz derleme gibi birkaç şeyi otomatik olarak hallederek geliştirmeyi basitleştirir.

Tam açıklama: Mobil Uygulamalar için Node.js'yi geliştiren şirket için çalışıyorum.


Teşekkürler, harika çalışıyor! İhtiyaçlarımı npmve çoklu dosya desteğiyle tamamen karşıladım (kullanılmadı, ancak kullanılabilir olduğunu bilmek güzel). Neredeyse canvasiş yapmayı başardım , ancak Linux'ta (şu anda Windows kullanıyorum) bazı ekstra adımlar atmam gerekecekti ve bunu gerektirmeyen bir yedek kitaplık buldum.
GuiRitter

Selam, Alexis. Bu hızlı çalışacak mı?
mahesh

Merhaba @mahesh, kesinlikle express'i kullanabilirsin. Bir http sunucusu ve p2p iletişimi (örneğin web yuvaları ile) çalıştırmak, nodejs-mobile kullanımı için çok yaygın senaryolardır. Cordova'yı kullanmak istemeniz durumunda, bu örnek uygulamayı express kullandığı için yararlı bulabilirsiniz: github.com/JaneaSystems/nodejs-mobile-samples/blob/…
Alexis Campailla


2

Android için NodeJS'nin nasıl oluşturulacağına ilişkin eğitim https://github.com/dna2github/dna2oslab/tree/master/android/build
v0.12, v4, v6, v7'nin birkaç sürümü vardır

Android'de derlenmiş ikiliyi çalıştırmak kolaydır; örneğin derlenmiş Nginx'i çalıştırın: https://github.com/dna2github/dna2mtgol/tree/master/fileShare

Nginx'i NodeJS olarak değiştirmek için kodu değiştirmeniz yeterlidir; arka uçta js sunucusunu çalıştırmak için Android Hizmeti kullanıyorsanız daha iyidir.


..... Nginx'i NodeJS olarak değiştirmek için kodu değiştirin .... Bunun nasıl yapılacağına dair bir örnek göstermeniz daha iyi olur.
Edijae Crusar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.