Chạy Node.Js trên Android


95

Vì vậy, tôi biết điều này đã được đặt câu hỏi khá nhiều. Ví dụ chính xác trong những câu hỏi sau:

  1. Chạy máy chủ NodeJs trong Android
  2. Làm thế nào để chạy dự án node.js của tôi trên Android?
  3. NodeJS trên IOS / Android

Mặc dù vậy, mọi tùy chọn được trình bày đều có vấn đề:

  • Tôi muốn chạy nó trên thiết bị bình thường của mình nên tôi muốn tránh cài đặt hệ điều hành khác trên Thiết bị của mình

  • Công việc trên JXCore đã bị dừng vào tháng trước và (có thể do đó) tôi không thể biên dịch nó (xem Không thể cài đặt jxcore-cordova )

  • Cổng Android Anode của NodeJs đã không được hoạt động kể từ năm 2014 và không thực sự được duy trì vào thời điểm đó
  • Câu trả lời thứ hai trong chuỗi thứ hai mà tôi đã liên kết đề cập đến hiện tại có bản phân phối nút chính thức cho Android nhưng ngoài liên kết đến Trang web Duyệt của phiên bản mới nhất, tôi không thể tìm thấy bất kỳ thông tin nào về cách thực sự sử dụng nó
  • Tôi cũng thấy điều này nhưng có vẻ như thiết bị phải được kết nối với PC (hoặc tương tự) để chạy các lệnh adb shell trong khi tôi muốn đặt nó thành một Ứng dụng riêng biệt

Với thời gian đã qua kể từ khi những câu hỏi này được đăng và là "tùy chọn tốt nhất", JXCore dường như không sử dụng được:
Có cách nào để chạy ứng dụng node.js (một máy chủ trong trường hợp của tôi) trên thiết bị Android không?

nếu bạn đang tự hỏi tại sao tôi muốn điều này: Tôi đã tạo một WebApp với máy chủ Node.Js và bây giờ tôi muốn có một phiên bản mà bạn có thể khởi chạy cục bộ từ điện thoại của mình mà không cần kết nối Internet. Điều này có nghĩa là máy chủ cần chạy trên điện thoại Android.


1
Chỉ vì quan tâm, bạn có quan tâm liệu có ai khác thực sự có thể sử dụng ứng dụng này không hay bạn chỉ đang cố gắng tạo ra nó để bạn có thể sử dụng nó trên điện thoại của mình. Vì tôi có thể thấy điều này cần rất nhiều thiết lập trên đầu người dùng / khách hàng nếu nó thậm chí có thể hoạt động.
zgc7009

1
Tôi hoàn toàn đồng ý rằng nếu tôi chỉ sử dụng nó trên điện thoại của mình thì nỗ lực hiện tại của tôi sẽ quá phức tạp. Máy chủ Node.JS này mặc dù là một loại Máy chủ ứng dụng web trò chơi nhỏ nên mọi người chơi trò chơi sẽ phải có quyền truy cập vào máy chủ đó.
MariusR

Bạn sẽ không thể gói một máy chủ Node.JS vào một bản dựng Android và rất ít người sẽ đủ kỹ thuật để cài đặt nó để chơi một trò chơi. Nếu chỉ đối với bạn thì đó là một chuyện, nhưng nếu nó được cho là phải thu nhỏ thì tôi không thấy điều này sẽ diễn ra như thế nào. Có rất nhiều ứng dụng, đặc biệt là các trò chơi không chỉ yêu cầu kết nối internet mà còn phải có kết nối mạnh.
zgc7009

Tôi biết nhưng ứng dụng này trên Android chỉ dành cho tôi. Nó sẽ không xuất hiện trên bất kỳ Cửa hàng APP hoặc bất kỳ thứ gì. Tôi cũng sẽ triển khai máy chủ tới một không gian Web được lưu trữ công cộng. Đó là lý do tại sao tôi không muốn phủ nhận việc sử dụng node.js. Các sẽ phải thực hiện một ẩn Version được tôi suy nghĩ "cái gì nếu tôi muốn chơi nó với bạn bè của tôi Offline'.
MariusR

2
Tôi cũng đã nghĩ về điều đó nhưng do máy chủ của tôi phụ thuộc rất nhiều vào khuôn khổ socket.io nên việc tạo máy chủ bằng Java trở nên khó khăn hơn. Ngoài ra, tôi đã có khá nhiều mã trong NodeJS và tôi không cảm thấy muốn viết lại một phần lớn của nó. Giải pháp sử dụng Termux hoạt động cực kỳ hiệu quả btw và tôi vẫn sử dụng nó cho mục đích của mình mặc dù tôi phải nói rằng tôi sẽ không bao giờ sử dụng nó nếu nodejs của tôi là một sản phẩm thực tế mà tôi sẽ bán vì nó quá rắc rối cho điều đó.
MariusR

Câu trả lời:


90

Tôi vừa có một khoảnh khắc thú vị - Termux cho phép bạn cài đặt NodeJS trên thiết bị Android!

Nó có vẻ hoạt động cho một bài kiểm tra tốc độ Websocket cơ bản mà tôi đã có trong tay. Http do nó cung cấp có thể được truy cập cục bộ và trên mạng.

Có một bài đăng vừa giải thích quá trình cài đặt

Về cơ bản: 1. Cài đặt termux 2. apt cài đặt nodejs 3. Nút nó lên!

Một hạn chế mà tôi gặp phải - có vẻ như các thư mục được chia sẻ không có quyền cần thiết để cài đặt mô-đun. Nó có thể chỉ là một thứ cho phép tệp. Bộ nhớ ứng dụng riêng hoạt động tốt.


5
Điều kỳ lạ là đã có một câu trả lời mà tôi chấp nhận cho câu hỏi này mô tả điều tương tự như bạn đã làm nhưng có vẻ như nó đã bị xóa vì một số lý do. Đó là lý do tại sao tôi chấp nhận câu trả lời của bạn khi tôi bắt đầu sử dụng Termux từ thời điểm đó và vẫn đang sử dụng nó.
MariusR

6
Cảm ơn. Tôi đã rất ngạc nhiên bởi tôi đã phải thực hiện nhiều tìm kiếm như thế nào trước khi bắt gặp tham chiếu của Termux. Chủ đề này là một trong những kết quả ban đầu tôi chạy vào, vì vậy tôi mặc dù tôi muốn thêm nó ở đây để cung cấp cho người tìm kiếm tiếp theo một phím tắt;)
Pyro

Có vẻ như đó là ok để xóa các câu trả lời được chấp nhận với 11 upvotes về một câu hỏi được bảo vệ, có lẽ bởi vì nó là một "liên kết duy nhất" câu trả lời, vì vậy có lẽ là một này cũng sẽ bị xóa tại một số điểm ...
jcesarmobile

2
Bạn có biết liệu nó có cho phép máy chủ tiếp tục chạy ở chế độ nền hay không nếu bạn thoát ứng dụng Termux? Còn khi bạn khóa android thì sao? Cảm ơn.
wayofthefuture

5
Tôi phải làm cho $ cập nhật apt $ nâng cấp apt trước khi nó tìm thấy nodejs tôi đã sử dụng nó trên HUAWEI Thuyết minh số 6
M.Hefny

16

Dory - node.js

Ứng dụng mới tuyệt vời
Không cần root điện thoại của bạn và bạn có thể chạy tệp js của mình từ bất kỳ đâu.

  • thời gian chạy node.js (chạy ES2015 / ES6, ES2016 javascript và API node.js trong android)
  • Tài liệu API và mã tức thì chạy từ doc
  • trình soạn thảo mã tô sáng cú pháp
  • npm hỗ trợ
  • thiết bị đầu cuối linux (toybox 0.7.4). node.js REPL và lệnh npm trong shell (thêm tùy chọn '--no-bin-links' nếu bạn thực thi npm trong / sdcard)
  • StartOnBoot / LiveReload
  • bản nhị phân node.js và npm được bao gồm. không cần phải trực tuyến.

Cập nhật hướng dẫn lên nút js 8 (không đồng bộ đang chờ đợi)

  1. Tải xuống tệp zip arm.js v8.3.0 và giải nén.

  2. sao chép 'nút' vào sdcard của android (/ sdcard hoặc / sdcard / đường dẫn / đến / ...)

  3. mở shell (xem trong menu của ứng dụng)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin (hoặc chỉ nhập cd && cd .. && cd files / bin)

  5. nút rm

  6. cp / sdcard / nút.

  7. (nút chmod a + x

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


2
dường như có một số vấn đề khi chạy cài đặt npm, chẳng hạn như bị phàn nàn về việc không có quyền truy cập vào "/" và quyền truy cập chỉ đọc vào FS.
Michael

Liên hệ với họ: (tempage.io@gmail.com)
Sedric Heidarizarei

Có vẻ như chỉ hỗ trợ một phiên bản rất cũ của Node. Về 6.x trong khi hiện nay như tôi đăng bài này là 10.x / 11.x
hippietrail

cập nhật giờ đây dễ dàng hơn nhiều: <pre> nâng cấp node.js: menu 'download file' -> kiểm tra 'appfiles' -> kiểm tra 'thi hành' v6.12.3 arm: dorynode.firebaseapp.com/v6.12.3_arm_release/node v8. Cánh tay 3.0: dorynode.firebaseapp.com/v8.3.0_arm_release/node v8.9.4 arm (chỉ dành cho android 5.0 trở lên): dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 arm (chỉ dành cho android 5.0 trở lên) : dorynode.firebaseapp.com/v10.15.1_arm_release/node xem myket.ir/app/io.tempage.dorynode?lang=vi </pre>
Kay Marquardt

13

Bạn có thể sử dụng Node.js cho Ứng dụng di động .

Nó hoạt động trên các thiết bị và trình mô phỏng Android, với các tệp nhị phân được tạo sẵn cho armeabi-v7a, x86, arm64-v8a, x86_64. Nó cũng hoạt động trên iOS, mặc dù điều đó nằm ngoài phạm vi của câu hỏi này.

Giống như JXcore, nó được sử dụng để lưu trữ một công cụ Node.js trong cùng một quy trình với ứng dụng, trong một chuỗi chuyên dụng. Không giống như JXcore, về cơ bản nó là Node.js thuần túy, được xây dựng như một thư viện, với một số bản sửa lỗi về tính di động để chạy trên Android. Điều này có nghĩa là việc cập nhật dự án với mainline Node.js sẽ dễ dàng hơn nhiều.

Các plugin cho CordovaReact Native cũng có sẵn. Các plugin cung cấp một lớp giao tiếp giữa phía JavaScript của các khung đó và phía Node.js. Họ cũng đơn giản hóa việc phát triển bằng cách tự động xử lý một số thứ, như đóng gói mô-đun và biên dịch chéo mô-đun gốc tại thời điểm xây dựng.

Tiết lộ đầy đủ: Tôi làm việc cho công ty phát triển Node.js cho Ứng dụng di động.


Cảm ơn, hoạt động tuyệt vời! Hoàn toàn đáp ứng nhu cầu của tôi npmvà hỗ trợ nhiều tệp (cuối cùng là không sử dụng, nhưng thật tốt khi biết nó có sẵn). Gần như được quản lý để làm canvasviệc, nhưng tôi sẽ cần thực hiện thêm một số bước trong Linux (hiện đang sử dụng Windows) và tôi đã tìm thấy một thư viện thay thế không yêu cầu nó.
GuiRitter

Chào, Alexis. Sẽ chạy nhanh?
mahesh

Xin chào @mahesh, bạn chắc chắn có thể sử dụng express. Chạy máy chủ http và truyền thông p2p (ví dụ: với websockets) là những tình huống rất phổ biến khi sử dụng nodejs-mobile. Trong trường hợp bạn muốn sử dụng Cordova, bạn có thể tìm thấy ứng dụng này mẫu hữu ích vì nó sử dụng bày tỏ: github.com/JaneaSystems/nodejs-mobile-samples/blob/...
Alexis Campailla


1

hướng dẫn cách xây dựng NodeJS cho Android https://github.com/dna2github/dna2oslab/tree/master/android/build
có một số phiên bản v0.12, v4, v6, v7

Nó rất dễ dàng để chạy nhị phân đã biên dịch trên Android; ví dụ: chạy Nginx đã biên dịch: https://github.com/dna2github/dna2mtgol/tree/master/fileShare

Bạn chỉ cần sửa đổi mã để thay thế Nginx thành NodeJS; sẽ tốt hơn nếu sử dụng Dịch vụ Android để chạy máy chủ nút js trên phần phụ trợ.


..... sửa đổi mã để thay thế Nginx thành NodeJS .... sẽ tốt hơn nếu bạn đưa ra một ví dụ về cách thực hiện việc này.
Edijae Crusar

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.