在Android上运行Node.Js.

Mar*_*usR 85 android android-ndk node.js cordova jxcore

所以我知道这已经受到了很多质疑.准确地说,例如在这些问题中:

  1. 在Android中运行NodeJs服务器
  2. 如何在android上运行我的node.js项目?
  3. IOS/Android上的NodeJS

提出的每个选项都存在问题:

  • 我想在我的普通设备上运行它,所以我想避免在我的设备上安装另一个操作系统

  • JXCore的工作在上个月停止了(也许是因此)我无法编译(参见无法安装jxcore-cordova)

  • NodeJs Anode的Android端口自2014年以来一直没有开发过,当时并没有真正维护过
  • 在我提到的第二个帖子中的第二个答案提到Android现在有一个官方节点分发,但除了最新dist浏览网站的链接我找不到任何关于如何实际使用它的信息
  • 我也看到了这个,但似乎设备必须连接到PC(或类似)才能运行adb shell命令,而我想将它作为一个单独的App

随着这些问题发布以来的时间以及作为"最佳选择"的JXCore似乎现在无法使用:
有没有办法在Android设备上运行node.js应用程序(在我的情况下是服务器)?

如果你想知道为什么我想要这个:我用Node.Js服务器创建了一个WebApp,现在我想要一个你可以从手机本地启动的版本而不需要互联网连接.这意味着服务器需要在Android手机上运行.

Pyr*_*yro 74

我只是有一个令人痛苦的时刻 - Termux允许您在Android设备上安装NodeJS!

它似乎适用于我手头的基本Websocket速度测试.它所服务的http可以在本地和网络上访问.

有一个中等帖子解释了安装过程

基本上:1.安装termux 2. apt install nodejs 3.将它节点化!

我遇到的一个限制 - 似乎共享文件夹没有安装模块所需的权限.它可能只是一个文件权限的东西.私有应用程序存储工作正常.

  • 谢谢.在遇到Termux的参考之前,我很惊讶我需要做多少搜索.这个帖子是我遇到的早期结果之一,所以我虽然在这里添加它以给下一个搜索者一个捷径;) (6认同)
  • 奇怪的是,我已经接受了这个问题的答案,它描述了你所做的同样的事情,但似乎因某种原因被删除了.这就是为什么我接受你的回答,因为我当时开始使用Termux并且仍在使用它. (5认同)
  • 我必须先进行$ apt update $ apt upgrade才能找到我在HUAWEI Note 6上使用过的nodejs (3认同)
  • 您是否知道如果退出Termux应用程序是否将允许服务器在后台继续运行?锁定Android怎么样?谢谢。 (2认同)

Sed*_*rei 13

Dory - node.js

伟大的新应用程序
无需根您的手机,你可以从任何地方运行你的js文件.

  • node.js运行时(在android中运行ES2015/ES6,ES2016 javascript和node.js API)
  • API文档和即时代码从doc运行
  • 语法高亮代码编辑器
  • npm支持
  • linux终端(toybox 0.7.4).node.js shell中的REPL和npm命令(如果在/ sdcard中执行npm,则添加'--no-bin-links'选项)
  • StartOnBoot/LiveReload
  • 包括native node.js binary和npm.无需上网.

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

  • 似乎有一些运行npm install的问题,抱怨没有访问"/"和例如对FS的只读访问. (2认同)

Ale*_*lla 10

您可以将Node.js用于移动应用程序.

它适用于Android设备和模拟器,具有armeabi-v7a,x86,arm64-v8a,x86_64的预构建二进制文件.它也适用于iOS,但这不在本问题的范围内.

与JXcore一样,它用于在与专用线程相同的进程中托管Node.js引擎.与JXcore不同,它基本上是纯粹的Node.js,构建为库,在Android上运行一些可移植性修复.这意味着使用主线Node.js使项目更新更容易.

CordovaReact Native的插件也可用.插件在这些框架的JavaScript端和Node.js端之间提供了一个通信层.它们还通过自动处理一些事情来简化开发,例如在构建时打包模块和交叉编译本机模块.

完全披露:我为开发移动应用程序的Node.js的公司工作.


pat*_*ani 9

J2V8是您问题的最佳解决方案.它在jvm(java和android)上运行Nodejs应用程序.

J2V8是V8的Java绑定,但J2V8(版本4.4.0)中提供了Node.js集成

Github:https://github.com/eclipsesource/J2V8

示例:http://eclipsesource.com/blogs/2016/07/20/running-node-js-on-the-jvm/