Запуск Node.Js на Android


95

Тож я знаю, що це ставилося досить багато під сумнів. Точніше, наприклад, у цих питаннях:

  1. Запустіть сервер NodeJs в Android
  2. Як запустити мій проект node.js на android?
    і
  3. NodeJS на IOS / Android

У кожного представленого варіанту є проблема:

  • Я хочу запустити його на своєму звичайному пристрої, тому не хотів би інсталювати іншу ОС на своєму пристрої

  • Минулого місяця роботу над JXCore було припинено, і (можливо, як результат) я не зміг змусити її скомпілювати (див. Не вдається встановити jxcore-cordova )

  • Android Порт NodeJs анод не працювали з 2014 року , і на самому ділі не підтримував тоді в будь-якому випадку
  • Друга відповідь у другому ланцюжку, до якого я зв’язав, є офіційним розподілом вузлів для Android, але крім посилання на веб-сайт огляду останнього дистрибутиву, я не міг знайти інформацію про те, як насправді використовувати його
  • Я також це бачив, але, схоже, пристрій потрібно підключити до ПК (або подібного), щоб запускати команди оболонки adb, тоді як я хотів би зробити це як окрему програму

З часом, коли ці питання були опубліковані, і як "найкращий варіант" JXCore, здається, зараз непридатний:
чи є спосіб запустити додаток node.js (у моєму випадку сервер) на пристрої Android?

якщо вам цікаво, чому я цього хочу: я створив WebApp із сервером Node.Js, і тепер я хочу версію, яку ви можете запускати локально зі свого телефону, не вимагаючи підключення до Інтернету. Це означає, що сервер повинен працювати на телефоні Android.


1
Просто з інтересу, вам все одно, чи може хтось інший насправді користуватися цим додатком, чи ви просто намагаєтесь створити його, щоб ви могли використовувати його на своєму телефоні. Тому що я бачу, що це вимагає великої кількості налаштувань для користувачів / клієнтів, якщо це навіть може працювати.
zgc7009

1
Я б повністю погодився, що якби я просто використовував його на своєму телефоні, моя поточна спроба була б занадто складною. Цей сервер Node.JS є свого роду маленьким сервером веб-додатків для ігор, тому кожен, хто грає у гру, повинен мати доступ до цього сервера.
MariusR

Ви не зможете поєднати сервер Node.JS у збірку Android, і дуже мало людей буде досить технічно схильним, щоб встановити його для гри. Якщо це лише для вас, це одне, але якщо це передбачається масштабувати взагалі, я не бачу, як це буде працювати. Існує безліч додатків, особливо ігор, які потребують не лише підключення до Інтернету, але й надійного.
zgc7009

Я знаю, але це додаток для Android - саме для мене. Він не підніметься в жодному магазині додатків чи нічого іншого. Я також розміщу сервера на загальнодоступному веб-просторі. Ось чому я не хочу відмовляти від використання node.js.
Бажання

2
Я теж про це думав, але, враховуючи, що мій сервер сильно покладається на фреймворк socket.io, це ускладнило створення сервера на Java. Крім того, у мене вже було досить багато коду в NodeJS, і я не хотів переписувати значну його частину. Рішення, яке використовує Termux, надзвичайно добре працює до речі, і я все ще використовую його для своєї мети, хоча я повинен сказати, що ніколи б не використовував його, якби мій nodejs був справжнім продуктом, який я продав би, оскільки це занадто незграбно для цього.
MariusR

Відповіді:


90

У мене щойно виникла щелепа - Termux дозволяє встановити NodeJS на пристрій Android!

Здається, це працює для базового тесту на швидкість Websocket, який я мав під рукою. Http, який він обслуговує, можна отримати як локально, так і в мережі.

Існує середній допис, який пояснює процес встановлення

В основному: 1. Встановіть termux 2. apt install nodejs 3. зв’яжіть!

Одне обмеження, з яким я зіткнувся - здається, спільні папки не мають необхідних дозволів на встановлення модулів. Це може бути просто питання дозволу файлу. Приватне сховище додатків працює чудово.


5
Дивно те, що я вже прийняв відповідь на це запитання, де було описано те саме, що і ви, але, схоже, його чомусь видалили. Ось чому я прийняв вашу відповідь, оскільки тоді я почав використовувати Termux і досі використовую його.
MariusR

6
Дякую. Я був здивований тим, скільки пошуків мені довелося зробити, перш ніж натрапити на посилання на Termux. Цей потік був одним із перших результатів, з якими я зіткнувся, тому, хоч і додав би його сюди, щоб дати ярлик наступному шукачеві;)
Pyro

Здається, нормально видалити прийняту відповідь із 11 голосами проти захищеного питання, мабуть, тому, що це була відповідь "лише за посиланням", тому, ймовірно, ця відповідь також буде колись видалена ...
jcesarmobile

2
Чи знаєте ви, чи це дозволить серверу продовжувати працювати у фоновому режимі, якщо ви вийдете з програми Termux? Як щодо того, коли ви заблокуєте андроїд? Дякую.
шлях майбутнього

5
Мені довелося зробити $ apt update $ apt upgrade, перш ніж він знайде nodejs. Я використовував його на HUAWEI Note 6
M.Hefny

16

Дорі - node.js

Чудовий новий додаток
Не потрібно викорінювати свій телефон, і ви можете запустити свій js-файл з будь-якого місця.

  • node.js час виконання (запустити API ES2015 / ES6, ES2016 javascript та node.js в android)
  • Документи API та миттєвий код запускаються з doc
  • редактор коду підсвічування синтаксису
  • npm підтримує
  • термінал Linux (toybox 0.7.4). node.js REPL і команда npm в оболонці (додайте опцію '--no-bin-links', якщо ви виконуєте npm у / sdcard)
  • StartOnBoot / LiveReload
  • Включені власний двійковий файл node.js та npm. не потрібно бути в Інтернеті.

Інструкція оновлення до вузла js 8 (async await)

  1. Завантажте файл zip arm arm і розпакуйте.

  2. скопіюйте `` вузол '' на sdcard android (/ sdcard або / sdcard / path / to / ...)

  3. відкрити оболонку (перевірити це в меню програми)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (або просто введіть cd && cd .. && cd files / bin)

  5. rm вузол

  6. cp / sdcard / node.

  7. (вузол chmod a + x

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


2
схоже, у нього є деякі проблеми із запуском npm install, скаржаться на відсутність доступу до "/" та доступ лише до читання до FS, наприклад.
Michael

Зв’яжіться з ними: (tempage.io@gmail.com)
Седрік Хайдарізарей,

Здається, що підтримує лише дуже стару версію Node. Близько 6.x, поки є поточним, коли я розміщую це 10.x / 11.x
hippietrail

оновлення стало набагато простішим: <pre> оновити node.js: меню 'завантажити файл' -> перевірити 'appfiles' -> перевірити 'виконуваний файл' 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 (тільки для android 5.0 вище): dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 arm (тільки для android 5.0 вище) : dorynode.firebaseapp.com/v10.15.1_arm_release/node див. myket.ir/app/io.tempage.dorynode?lang=en </pre>
Кей Марквардт,

13

Ви можете використовувати Node.js для мобільних додатків .

Він працює на пристроях Android та симуляторах, із попередньо побудованими двійковими файлами для armeabi-v7a, x86, arm64-v8a, x86_64. Це також працює на iOS, хоча це виходить за рамки цього питання.

Як і JXcore, він використовується для розміщення механізму Node.js у тому ж процесі, що і програма, у виділеному потоці. На відміну від JXcore, це в основному чистий Node.js, побудований як бібліотека, з декількома виправленнями переносимості для роботи на Android. Це означає, що набагато простіше постійно оновлювати проект за допомогою mainline Node.js.

Також доступні плагіни для Cordova та React Native . Плагіни забезпечують комунікаційний рівень між стороною JavaScript цих фреймворків та стороною Node.js. Вони також спрощують розробку, автоматично доглядаючи за кількома речами, такими як пакувальні модулі та крос-компіляція власних модулів під час збірки.

Повна інформація: Я працюю в компанії, яка розробляє Node.js для мобільних додатків.


Дякую, чудово працює! Повністю задовольнив мої потреби npmта підтримку декількох файлів (в кінцевому підсумку не використовував, але добре знати, що він доступний). Майже вдалося зробити canvasроботу, але мені потрібно було б зробити деякі додаткові кроки в Linux (наразі використовується Windows), і я знайшов заміну бібліотеки, яка цього не вимагає.
GuiRitter

Привіт, Алексію. Чи буде цей запуск експрес?
Махеш

Привіт @mahesh, ти точно можеш використовувати експрес. Запуск сервера HTTP та зв'язку p2p (наприклад, через веб-сокети) є дуже поширеними сценаріями використання nodejs-mobile. Якщо ви хочете скористатися Кордовою, вам може здатися цей зразок додатка корисним, оскільки він використовує express: github.com/JaneaSystems/nodejs-mobile-samples/blob/…
Alexis Campailla


1

навчальний посібник зі створення NodeJS для Android https://github.com/dna2github/dna2oslab/tree/master/android/build
є кілька версій v0.12, v4, v6, v7

Запустити скомпільований двійковий файл на Android легко; наприклад, запустити скомпільований Nginx: https://github.com/dna2github/dna2mtgol/tree/master/fileShare

Вам просто потрібно змінити код, щоб замінити Nginx на NodeJS; краще використовувати сервіс Android для запуску node js-сервера на серверній панелі.


..... змініть код, щоб замінити Nginx на NodeJS .... було б краще, якби ви показали приклад, як це зробити.
Edijae Crusar

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.