AndroidでNode.Jsを実行する


95

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

  1. AndroidでNodeJsサーバーを実行する
  2. Androidでnode.jsプロジェクトを実行するにはどうすればよいですか?
    そして
  3. IOS / Android上のNodeJS

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

  • 通常のデバイスで実行したいので、デバイスに別のOSをインストールしないようにしたい

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

  • NodeJs AnodeのAndroidポートは、2014年以降取り組んでおらず、それでも当時は実際には維持されていませんでした
  • 私がリンクした2番目のスレッドの2番目の答えはAndroidの公式ノード配布ですが、最新のdistのBrowse-Websiteへのリンクを除いて、実際にそれを使用する方法に関する情報を見つけることができませんでした
  • 私もこれをましたが、adbシェルコマンドを実行するには、デバイスをPC(または同様のもの)に接続する必要があるようですが、別のアプリとして作成したい

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

なぜこれが必要なのか疑問に思う場合は、Node.JsサーバーでWebAppを作成し、インターネット接続を必要とせずに電話からローカルで起動できるバージョンが必要になりました。つまり、サーバーはAndroidフォンで実行する必要があります。


1
ただ興味があるだけで、他の誰かがこのアプリを実際に使用できるかどうか気にしますか、それともあなたがあなたの電話でそれを使用できるようにそれを作ろうとしているのですか これが機能する場合は、ユーザー/クライアント側で多くの設定を行う必要があることがわかります。
zgc7009 2016

1
私が携帯電話でそれを使用するだけの場合、私の現在の試みは非常に複雑になることに完全に同意します。ただし、このNode.JSサーバーは一種の小さなゲームWebアプリケーションサーバーであるため、ゲームをプレイするすべての人がそのサーバーにアクセスする必要があります。
MariusR 2016

Node.JSサーバーをAndroidビルドにバンドルすることはできず、ゲームをプレイするためにそれをインストールするのに十分な技術的な傾向がある人はほとんどいません。それがあなたのためだけのものであれば、それは1つのことですが、まったくスケーリングすることになっている場合、これがどのように機能するかわかりません。アプリはたくさんあります。特に、インターネット接続だけでなく強力なアプリを必要とするゲームもあります。
zgc7009 2016

私は知っていますが、Android上のこのアプリは私専用です。それはどんなAPP Storeでも何でも上がらないでしょう。また、サーバーをパブリックホステッドウェブスペースにデプロイします。それが、node.jsの使用を否定したくない理由です。オフラインバージョンを作成する意思は、「友達とオフラインで再生したい場合はどうしたらよいか」を考えていた
MariusR

2
私もそれについて考えましたが、私のサーバーがsocket.ioフレームワークに大きく依存していることを考えると、Javaでサーバーを作成するのがより困難になりました。また、NodeJSのコードの多くはすでにダウンしており、その大部分を書き換える気にはなりませんでした。Termuxを使用するソリューションは非常にうまく機能しますが、nodejsが実際の製品である場合は決して使用しないと言っておく必要がありますが、あまりにも扱いにくいので、私はまだそれを目的に使用しています。
MariusR 2016

回答:


88

ちょっとした瞬間がありました-Termuxを使用すると、NodeJSをAndroidデバイスにインストールできます!

手元にある基本的なWebsocket Speed Testで動作するようです。それによって提供されるhttpはローカルとネットワークの両方にアクセスできます。

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

基本的に:1. termuxをインストールします2. apt install nodejs 3. node it up!

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


5
奇妙なことに、あなたがしたのと同じことを説明しているこの質問に対して私がすでに受け入れた回答がありましたが、何らかの理由で削除されたようです。そのため、当時Termuxを使い始め、それでもまだ使用しているので、私はあなたの答えを受け入れました。
MariusR 2017年

6
ありがとう。Termuxのリファレンスに出くわす前にどれだけ多くの検索を行わなければならなかったかに驚きました。このスレッドは、私が遭遇した初期の結果の1つだったので、次の検索者にショートカットを提供するためにここに追加しましたが;)
Pyro

おそらく「リンクのみ」の回答であったため、保護された質問に対する11の賛成投票で承認された回答を削除しても問題ないようです。おそらくこれもある時点で削除されます...
jcesarmobile

2
Termuxアプリを終了した場合、サーバーがバックグラウンドで実行し続けることができるかどうか知っていますか?あなたがアンドロイドをロックしたときはどうですか?ありがとう。
wayofthefuture 2017

5
私は6 HUAWEI注意にそれを使用しnodejsそれが見つかったの前に$ aptの更新はaptのアップグレードを$しなければならなかった
M.Hefny

16

ドリー-node.js

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

  • node.jsランタイム(AndroidでES2015 / ES6、ES2016 javascriptおよびnode.js APIを実行)
  • ドキュメントから実行されるAPIドキュメントとインスタントコード
  • 構文強調表示コードエディター
  • 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. 「ノード」をAndroidのsdcard(/ 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. (chmod a + xノード

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


2
たとえば、npm installの実行にいくつかの問題があるようです。たとえば、「/」へのアクセス権がないこと、およびFSへの読み取り専用アクセス権があることについて不満がありました。
マイケル

連絡先:(tempage.io@gmail.com)
セドリックハイダリザレイ

非常に古いバージョンのノードのみをサポートしているようです。私が投稿している現在の6.xについては10.x / 11.xです
ヒッピートレイル

更新がはるかに簡単になりました:<pre> upgrade node.js: 'download file' menu-> check 'appfiles'-> check 'executable' v6.12.3 arm:dorynode.firebaseapp.com/v6.12.3_arm_release/node v8。 3.0 arm:dorynode.firebaseapp.com/v8.3.0_arm_release/node v8.9.4 arm(上記のAndroid 5.0のみ):dorynode.firebaseapp.com/v8.9.4_arm_release/node v10.15.1 arm(上記のAndroid 5.0のみ) :dorynode.firebaseapp.com/v10.15.1_arm_release/node see myket.ir/app/io.tempage.dorynode?lang=en </ pre>
Kay Marquardt

13

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を開発する会社で働いています。


ありがとうございます。npm複数のファイルのサポートで私のニーズを完全に満たしました(最終的には使用していませんが、それが利用可能であることを知っておくのは良いことです)。ほとんど問題canvasなく動作しましたが、Linux(現在Windowsを使用)で追加の手順を実行する必要があり、それを必要としない代替ライブラリを見つけました。
GuiRitter

ヒヤ、アレクシス。これは急行しますか?
mahesh

こんにちは@mahesh、間違いなくエクスプレスを使用できます。httpサーバーの実行とp2p通信(例:Webソケット)は、nodejs-mobileを使用するための非常に一般的なシナリオです。Cordovaを使用する場合は、エクスプレスを使用しているため、このサンプルアプリが便利です。github.com
samples


1

NodeJS for Androidのビルド方法のチュートリアル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サーバーを実行することをお勧めします。


..... NginxをNodeJSに置き換えるコードを変更する...これを行う方法の例を示した方がよいでしょう。
Edijae Crusar 2017年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.