所以我知道这已经受到了很多质疑。确切地说,例如在这些问题中:
所提出的每个选项都存在问题:
我想在普通设备上运行它,所以我想避免在我的设备上安装另一个操作系统
JXCore的工作在上个月停止了(也许是因此)我无法编译(参见Can't install jxcore-cordova)
随着这些问题过去以来的时间以及最佳选择" JXCore似乎现在无法使用:
有没有办法在Android设备上运行node.js应用程序(在我的情况下是服务器)?
如果您想知道为什么我想要这个:我使用Node.Js服务器创建了一个WebApp,现在我想要一个可以从手机本地启动而无需连接Internet的版本。这意味着服务器需要在Android手机上运行。
答案 0 :(得分:64)
我只有一个令人惊讶的时刻 - Termux允许您在Android设备上安装NodeJS!
这似乎适用于我手边的基本Websocket Speed Test。它所服务的http可以在本地和网络上访问。
有一个medium post that explains the installation process
基本上: 1.安装termux 2. apt安装nodejs 节点吧!
我遇到的一个限制 - 共享文件夹似乎没有安装模块的必要权限。它可能只是一个文件权限的东西。私有应用程序存储工作正常。
答案 1 :(得分:11)
伟大的新申请
无需根您的手机,您可以从任何地方运行您的js文件。
更新指令到节点js 8(异步等待)
下载node.js v8.3.0 arm zip文件并解压缩。
copy' node'到android的sdcard(/ sdcard或/ sdcard / path / to /...)
打开shell(在应用程序的菜单中查看)
cd /data/user/0/io.tmpage.dorynode/files/bin(或者,只需输入cd&& cd ..&& cd files / bin)
< / LI>rm node
cp / sdcard / node。
(chmod a + x node
(https://play.google.com/store/apps/details?id=io.tempage.dorynode&hl=en)
答案 2 :(得分: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/
答案 3 :(得分:7)
您可以使用Node.js for Mobile Apps。
适用于Android设备和模拟器,为armeabi-v7a,x86,arm64-v8a,x86_64预先构建了二进制文件。它也可以在iOS上运行,但这不属于这个问题的范围。
与JXcore一样,它用于在专用线程中在与应用程序相同的进程中托管Node.js引擎。与JXcore不同,它基本上是纯粹的Node.js,构建为库,在Android上运行一些可移植性修复。这意味着使用主线Node.js使项目更新更容易。
Cordova和React Native的插件也可用。插件在这些框架的JavaScript端和Node.js端之间提供了一个通信层。它们还通过自动处理一些事情来简化开发,例如在构建时打包模块和交叉编译本机模块。
完全披露:我为开发移动应用程序的Node.js的公司工作。
答案 4 :(得分:1)
如何为Android https://github.com/dna2github/dna2oslab/tree/master/android/build构建NodeJS的教程
有几个版本v0.12,v4,v6,v7
在Android上运行已编译的二进制文件很容易;例如,运行已编译的Nginx:https://github.com/dna2github/dna2mtgol/tree/master/fileShare
您只需修改代码即可将Nginx替换为NodeJS;如果使用Android Service在后端运行节点js服务器会更好。
答案 5 :(得分:0)