Więc wiem, że było to dość często kwestionowane. Aby być dokładnym, na przykład w tych pytaniach:
- Uruchom serwer NodeJs w systemie Android
- Jak uruchomić projekt node.js na Androidzie?
i - NodeJS na IOS / Android
Każda przedstawiona opcja ma jednak problem:
Chcę go uruchomić na moim normalnym urządzeniu, więc chciałbym uniknąć instalowania innego systemu operacyjnego na moim urządzeniu
Praca nad JXCore została zatrzymana w zeszłym miesiącu i (być może w rezultacie) nie mogłem go skompilować (zobacz Nie mogę zainstalować jxcore-cordova )
- Port Android NodeJs Anode nie był obsługiwany od 2014 roku i tak naprawdę nie był wtedy utrzymywany
- Druga odpowiedź w drugim wątku, z którym się łączyłem, wspomniała, że jest teraz oficjalna dystrybucja węzłów dla Androida, ale oprócz linku do przeglądania najnowszej nie mogłem znaleźć żadnych informacji o tym, jak z niej korzystać
- Widziałem to również, ale wygląda na to, że urządzenie musi być podłączone do komputera (lub podobnego), aby uruchomić polecenia powłoki adb, podczas gdy chciałbym zrobić to jako oddzielną aplikację
W czasie, który minął od opublikowania tych pytań i jako „najlepsza opcja” JXCore wydaje się być bezużyteczny:
czy istnieje sposób na uruchomienie aplikacji node.js (w moim przypadku serwera) na urządzeniu z Androidem?
jeśli zastanawiasz się, dlaczego chciałbym tego: stworzyłem aplikację internetową z serwerem Node.Js i teraz chcę wersję, którą możesz uruchomić lokalnie z telefonu bez konieczności połączenia z Internetem. Oznacza to, że serwer musi działać na telefonie z systemem Android.
Odpowiedzi:
Miałem moment, w którym opadła mi szczęka - Termux pozwala zainstalować NodeJS na urządzeniu z Androidem!
Wydaje się, że działa on w przypadku podstawowego testu szybkości Websocket, który miałem pod ręką. Dostęp do obsługiwanego przez niego protokołu http można uzyskać zarówno lokalnie, jak i przez sieć.
Istnieje średni post, który wyjaśnia proces instalacji
Zasadniczo: 1. Zainstaluj termux 2. apt install nodejs 3. połącz węzeł!
Jedno ograniczenie, na które natknąłem się - wydaje się, że foldery współdzielone nie mają niezbędnych uprawnień do instalowania modułów. Może to być kwestia uprawnień do plików. Prywatna pamięć aplikacji działa dobrze.
źródło
Dory - node.js
Świetna nowa aplikacja
Nie ma potrzeby rootowania telefonu i możesz uruchomić plik js z dowolnego miejsca.
Zaktualizuj instrukcję do węzła js 8 (async await)
Pobierz plik zip node.js v8.3.0 arm i rozpakuj.
skopiuj „węzeł” na sdcard Androida (/ sdcard lub / sdcard / path / to / ...)
otwórz powłokę (sprawdź to w menu aplikacji)
cd /data/user/0/io.tmpage.dorynode/files/bin (lub po prostu wpisz cd && cd .. && cd files / bin)
węzeł rm
cp / sdcard / node.
(chmod a + x węzeł
( https://play.google.com/store/apps/details?id=io.tempage.dorynode&hl=en )
źródło
Możesz użyć Node.js dla aplikacji mobilnych .
Działa na urządzeniach z Androidem i symulatorach, z gotowymi plikami binarnymi dla armeabi-v7a, x86, arm64-v8a, x86_64. Działa również na iOS, ale to wykracza poza zakres tego pytania.
Podobnie jak JXcore, jest używany do hostowania silnika Node.js w tym samym procesie co aplikacja, w dedykowanym wątku. W przeciwieństwie do JXcore, jest to w zasadzie czysty Node.js, zbudowany jako biblioteka, z kilkoma poprawkami dotyczącymi przenośności, aby działał na Androidzie. Oznacza to, że znacznie łatwiej jest aktualizować projekt za pomocą głównego Node.js.
Wtyczki do Cordova i React Native są również . Wtyczki zapewniają warstwę komunikacyjną między stroną JavaScript tych frameworków a stroną Node.js. Upraszczają również programowanie, zajmując się kilkoma rzeczami automatycznie, takimi jak pakowanie modułów i kompilowanie krzyżowe modułów natywnych w czasie kompilacji.
Pełne ujawnienie: pracuję dla firmy, która opracowuje Node.js dla aplikacji mobilnych.
źródło
npm
i obsługę wielu plików (ostatecznie nie korzystałem, ale dobrze jest wiedzieć, że jest dostępny). Prawie się udałocanvas
, ale musiałbym wykonać kilka dodatkowych czynności w Linuksie (obecnie używam Windows) i znalazłem bibliotekę zastępczą, która tego nie wymaga.J2V8 to najlepsze rozwiązanie Twojego problemu. To działa aplikacja Nodejs na jvm (java i android).
J2V8 to Java Bindings for V8, ale integracja Node.js jest dostępna w J2V8 (wersja 4.4.0)
Github: https://github.com/eclipsesource/J2V8
Przykład: http://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/
źródło
tutorial jak zbudować NodeJS dla Androida https://github.com/dna2github/dna2oslab/tree/master/android/build
istnieje kilka wersji v0.12, v4, v6, v7
Skompilowany plik binarny na Androida jest łatwy; na przykład uruchom skompilowany Nginx: https://github.com/dna2github/dna2mtgol/tree/master/fileShare
Wystarczy zmodyfikować kod, aby zamienić Nginx na NodeJS; lepiej jest używać usługi Android do uruchamiania serwera node js na zapleczu.
źródło