运行 Node.Js 在 Android

Running Node.Js on Android

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

  1. Run NodeJs server in Android
  2. How to run my node.js project on android?
  3. NodeJS on IOS/Android

尽管每个选项都有问题:

随着这些问题的发布时间过去,"best option" JXCore 现在似乎无法使用:
有没有办法在 Android 设备上 运行 一个 node.js 应用程序(在我的例子中是一个服务器)?

如果你想知道我为什么想要这个:我用 Node.Js 服务器制作了一个 WebApp,现在我想要一个你可以从你的 phone 本地启动的版本,而不需要互联网联系。这意味着服务器需要在 Android phone.

上 运行

如何为 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 服务到 运行 node js 服务器会更好。

我刚刚惊呆了 - Termux 允许您在 Android 设备上安装 NodeJS!

它似乎适用于我手头的基本 Websocket Speed Test。它所服务的http既可以在本地访问,也可以在网络上访问。

有个medium post that explains the installation process

基本上: 1.安装termux 2.apt安装nodejs 3. 节点起来!

我 运行 遇到的一个限制 - 似乎共享文件夹没有安装模块所需的权限。它可能只是一个文件权限的事情。私人应用存储工作正常。

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

J2V8 是 Java V8 的绑定,但是 Node.js 集成在 J2V8(版本 4.4.0)中可用

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

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

Dory - node.js

很棒的新应用程序
不需要root你的Phone,你可以从任何地方运行你的js文件。

  • node.js 运行time(运行 ES2015/ES6, ES2016 javascript and node.js APIs in android)
  • API 文档和即时代码 运行 来自 doc
  • 语法高亮代码编辑器
  • npm 支持
  • linux 终端(玩具箱 0.7.4)。 node.js shell 中的 REPL 和 npm 命令 (如果在 /sdcard 中执行 npm,请添加 '--no-bin-links' 选项)
  • StartOnBoot / LiveReload
  • 本机 node.js 二进制文件和 npm 包括在内。无需在线。

节点 js 8 的更新指令(异步等待)

  1. 下载node.js v8.3.0 arm zip 文件并解压。

  2. 复制'node'到android的sdcard(/sdcard or /sdcard/path/to/...)

  3. 打开 shell(在应用的菜单中查看)

  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=en)

您可以使用 Node.js for Mobile Apps

它适用于 Android 设备和模拟器,带有用于 armeabi-v7a、x86、arm64-v8a、x86_64 的预构建二进制文件。它也适用于 iOS,尽管这超出了这个问题的范围。

与 JXcore 一样,它用于在专用线程中在与应用程序相同的进程中托管 Node.js 引擎。与 JXcore 不同,它基本上是纯粹的 Node.js,构建为一个库,在 Android 上对 运行 进行了一些可移植性修复。这意味着通过主线 Node.js.

可以更轻松地使项目保持最新状态

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

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

Node.js Frontend for Android

  • releases 包括签名的 apks
  • Android 4.4+
  • 开源 (GPLv2)
  • 没有根
  • Node.js for Mobile Apps by Janea Systems 的前端
    • 这是 由其开发者之一在此线程中
    • 这是一个game-changer;干得好!
  • 在高层次上:
    • “在同一进程中执行” 选项卡:
      • 包括 Node.js 个应用程序列表,这些应用程序旨在 运行 在应用程序保持打开状态的短时间内,并且一次只能执行一个
    • “fork to separate process” 选项卡:
      • 包括 Node.js 个应用程序的列表,每个应用程序都在不同进程中的单独前台服务中执行,旨在容纳 long-running 守护进程(例如:各种类型的服务器)