web-dev-qa-db-ja.com

AndroidでNode.Jsを実行する

だから私はこれがかなり多く質問されていることを知っています。これらの質問の例として正確に言うと:

  1. AndroidでNodeJsサーバーを起動
  2. どのように私のnode.jsプロジェクトをandroid上で起動しますか?
    そして
  3. NodeJS on IOS/Android

しかし、提示されたすべてのオプションには問題があります。

  • 私のデバイスに他のOSをインストールしないようにしたいので、私は私の通常のデバイスでそれを実行したいのです。

  • JXCoreの作業は先月中止され、(おそらくその結果として)コンパイルできなかった( jxcore-cordovaをインストールできない を参照)

  • NodeJsのAndroid移植版 Anode は2014年以来開発されていないので、とにかく当時は保守されていませんでした
  • 私がリンクした2番目のスレッドの2番目の答えは、Android用の公式のノード配布ですが、---へのリンクとは別に 最新のdistのブラウズウェブサイト 私はどのように情報を見つけられませんでした実際に使う
  • 私は this も見ましたが、adb Shellコマンドを実行するには、デバイスをPC(または同様のもの)に接続する必要があるようですが、別のAppとして使用することを望みます。

過去にこれらの質問が投稿されてから「最良の選択肢」としてJXCoreは現在使用できないようです。
Androidデバイス上でnode.jsアプリケーション(私の場合はサーバー)を実行する方法はありますか?

node.Jsサーバーを使ってWebAppを作成し、インターネットに接続しなくても携帯電話からローカルで起動できるバージョンが必要になりました。つまり、サーバーはAndroid携帯で動作する必要があります。

76
MariusR

私はただちょっと立ち寄った瞬間- Termux を使うとAndroidデバイスにNodeJSをインストールできます。

基本的にはうまくいくようです Websocket Speed Test 私は手元に持っていました。それによって提供されるhttpは、ローカルとネットワークの両方でアクセスできます。

があります インストールプロセスを説明する中程度の投稿

基本的には:1. termuxをインストールします2. apt nodejsをインストールします3.それをノードにします!

私が遭遇した一つの制限 - それは共有フォルダーがモジュールをインストールするのに必要な許可を持っていないようです。それは単なるファイル許可のことかもしれません。プライベートアプリのストレージは問題なく動作します。

68
Pyro

Dory - node.js

素晴らしい新しいアプリケーション
あなたの電話を根絶する必要はなく、あなたはどこからでもあなたのjsファイルを実行することができます。

  • node.jsランタイム(AndroidでES2015/ES6、ES2016 javascriptおよびnode.js APIを実行します)
  • APIドキュメントとインスタントコードはdocから実行されます
  • 構文強調コードエディタ
  • npmサポート
  • linuxターミナル(toybox 0.7.4)シェルのnode.js 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のSDカード(/ sdcardまたは/ sdcard/path/to/...)にコピーします。

  3. シェルを開く(アプリのメニューでチェックアウト)

  4. cd /data/user/0/io.tmpage.dorynode/files/bin(または、cd && cd .. && cd files/binと入力します)

  5. rMノード

  6. cp/sdcard/node.

  7. (+ xノードをchmodする

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

13

J2V8はあなたの問題の最良の解決策です。それはjvm(JavaとAndroid)でNodejsアプリケーションを実行します。

J2V8はV8のJavaバインディングですが、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/

9
pathik devani

モバイルアプリの場合は Node.js を使用できます。

それはarmeabi-v7a、x86、arm64-v8a、x86_64用のビルド済みバイナリで、Androidデバイスとシミュレータ上で動作します。 iOS上でも動作しますが、これはこの質問の範囲外です。

JXcoreと同様に、アプリと同じプロセスでNode.jsエンジンを専用スレッドでホストするために使用されます。 JXcoreとは異なり、これは基本的に純粋なNode.jsであり、ライブラリとして構築され、Android上で実行するための移植性がいくつか修正されています。これは、メインラインNode.jsを使ってプロジェクトを最新の状態に保つことがはるかに簡単であることを意味します。

Cordova および React Native のプラグインも利用できます。プラグインは、それらのフレームワークのJavaScript側とNode.js側の間の通信層を提供します。また、モジュールのパッケージ化やビルド時のネイティブモジュールのクロスコンパイルなど、いくつかのことを自動的に処理することで開発を簡素化します。

完全な開示:私はモバイルアプリのNode.jsを開発している会社で働いています。

8

android用NodeJSをビルドする方法のチュートリアル https://github.com/dna2github/dna2oslab/tree/master/Android/build
いくつかのバージョンv0.12、v4、v6、v7があります

Android上でコンパイル済みバイナリを実行するのは簡単です。たとえば、コンパイル済みNginxを実行します。 https://github.com/dna2github/dna2mtgol/tree/master/fileShare

NginxをNodeJSに置き換えるようにコードを修正するだけです。 Androidサービスを使用してバックエンドでノードjsサーバーを実行した方が良いです。

1
Doz Parp