在Android上运行Node.Js.

时间:2016-04-14 19:49:54

标签: android node.js cordova android-ndk jxcore

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

  1. Run NodeJs server in Android
  2. How to run my node.js project on android?
  3. NodeJS on IOS/Android
  4. 所提出的每个选项都存在问题:

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

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

    • 自2014年以来,NodeJs Anode的Android端口尚未开展工作,并且当时无法维护
    • 我提到的第二个帖子中的第二个答案提到Android现在有一个官方节点分发版,但除了Browse-Website of the latest dist的链接外,我找不到任何关于如何实际使用它的信息
    • 我也看到了this但似乎设备必须连接到PC(或类似设备)才能运行adb shell命令,而我想将其作为单独的应用程序

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

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

6 个答案:

答案 0 :(得分:64)

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

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

有一个medium post that explains the installation process

基本上:  1.安装termux  2. apt安装nodejs  节点吧!

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

答案 1 :(得分:11)

Dory - node.js

伟大的新申请
无需根您的手机,您可以从任何地方运行您的js文件。

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

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

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

  2. copy' node'到android的sdcard(/ sdcard或/ sdcard / path / to /...)

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

  4. cd /data/user/0/io.tmpage.dorynode/files/bin(或者,只需输入cd&& cd ..&& cd files / bin)

    < / LI>
  5. rm node

  6. cp / sdcard / node。

  7. (chmod a + x node

  8. 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使项目更新更容易。

CordovaReact 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)

Node.js Frontend for Android

  • releases 包括签名的 apk
  • Android 4.4+
  • 开源 (GPLv2)
  • 没有root
  • Node.js for Mobile AppsJanea Systems 前端
    • announced earlier 的一位开发者在此线程中发布了
    • 改变游戏规则;干得好!
  • 在高层次上:
    • “在同一进程中执行” 选项卡:
      • 包含一系列 Node.js 应用程序,这些应用程序旨在在应用程序保持打开状态时运行一小段时间,并且一次只能执行一个
    • “分叉到分离进程” 标签:
      • 包含一系列 Node.js 应用程序,每个应用程序在不同进程中的单独前台服务中执行,旨在保持长时间运行的守护进程(例如:各种类型的服务器)

screenshots animation