Android에서 Node.Js 실행


95

그래서 저는 이것이 많은 질문을 받았다는 것을 압니다. 예를 들어 다음 질문에서 정확히 말하면 :

  1. Android에서 NodeJs 서버 실행
  2. Android에서 node.js 프로젝트를 실행하는 방법은 무엇입니까?
  3. IOS / Android의 NodeJS

제시된 모든 옵션에는 문제가 있습니다.

  • 일반 기기에서 실행하고 싶어서 내 기기에 다른 OS를 설치하는 것을 피하고 싶습니다.

  • JXCore에 대한 작업이 지난 달에 중단되었으며 (결과적으로) 컴파일 할 수 없습니다 ( Ca n't install jxcore-cordova 참조 ).

  • NodeJs Anode 의 Android 포트는 2014 년 이후로 작업되지 않았으며 그 당시에는 실제로 유지 관리되지 않았습니다.
  • 내가 링크 한 두 번째 스레드의 두 번째 답변은 현재 Android 용 공식 노드 배포가 있지만 최신 distBrowse-Website 링크를 제외 하고 실제로 사용하는 방법에 대한 정보를 찾을 수 없습니다.
  • 나는 또한 이것을 보았지만 별도의 앱으로 만들고 싶습니다.

이러한 질문이 게시 된 이후로 과거에는 "최상의 옵션"인 JXCore를 사용할 수없는 것 같습니다
. Android 장치에서 node.js 애플리케이션 (제 경우에는 서버)을 실행할 수있는 방법이 있습니까?

왜 이것이 필요한지 궁금하다면 Node.Js 서버로 웹 애플리케이션을 만들었고 이제 인터넷 연결 없이도 휴대 전화에서 로컬로 실행할 수있는 버전을 원합니다. 이는 서버가 Android 휴대폰에서 실행되어야 함을 의미합니다.


1
다른 사람이 실제로이 앱을 사용할 수 있는지 아니면 휴대폰에서 사용할 수 있도록 만들려고하는지 관심이 있으십니까? 왜냐하면 이것이 작동 할 수 있다면 사용자 / 클라이언트 끝에서 많은 설정을 취하는 것을 볼 수 있습니다.
zgc7009

1
내 전화에서 사용하면 현재 시도가 너무 복잡하다는 데 전적으로 동의합니다. 이 Node.JS 서버는 일종의 작은 게임 웹 응용 프로그램 서버이므로 게임을하는 모든 사람이 해당 서버에 액세스해야합니다.
MariusR

당신은 Node.JS 서버를 안드로이드 빌드에 묶을 수 없을 것이고, 게임을하기 위해 그것을 설치하기에 기술적으로 충분한 사람은 거의 없을 것입니다. 그것이 당신만을위한 것이라면 그것은 한 가지입니다. 그러나 그것이 전혀 확장되어야한다면 이것이 어떻게 작동할지 모르겠습니다. 인터넷 연결뿐만 아니라 강력한 연결이 필요한 게임, 특히 많은 앱이 있습니다.
zgc7009

알고 있지만 Android 용이 앱은 나만을위한 것입니다. 어떤 앱 스토어에도 올라가지 않습니다. 또한 공개 호스팅 된 웹 공간에 서버를 배포 할 것입니다. 그래서 node.js를 사용하는 것을 부정하고 싶지 않습니다. 버전이 날 내 친구와 함께 플레이 할 경우 '오프라인 무엇 "생각 오프라인을 할 것입니다.
MariusR

2
나는 그것에 대해서도 생각했지만 내 서버가 socket.io 프레임 워크에 크게 의존한다는 점을 고려하면 Java로 서버를 만드는 것이 더 어려워졌습니다. 또한 나는 이미 NodeJS에 꽤 많은 코드를 가지고 있었고 그것의 많은 부분을 다시 작성하고 싶지 않았습니다. Termux를 사용하는 솔루션은 매우 잘 작동하며 내 nodejs가 실제 제품이라면 결코 사용하지 않을 것이라고 말해야하지만 너무 투박하기 때문에 내 목적으로 사용합니다.
MariusR

답변:


90

방금 놀라운 순간을 보냈습니다. Termux를 사용하면 Android 장치에 NodeJS를 설치할 수 있습니다!

내가 가지고 있던 기본 Websocket 속도 테스트 에서 작동하는 것 같습니다 . 제공되는 http는 로컬 및 네트워크에서 모두 액세스 할 수 있습니다.

설치 과정을 설명 하는 중간 게시물이 있습니다.

기본적으로 : 1. termux를 설치합니다. 2. apt 설치 nodejs 3. 노드를 설치합니다!

한 가지 제한 사항이 있습니다. 공유 폴더에 모듈을 설치하는 데 필요한 권한이없는 것 같습니다. 파일 권한 문제 일 수 있습니다. 개인 앱 저장소는 잘 작동합니다.


5
이상한 점은 당신이 한 것과 같은 것을 설명하는이 질문에 대해 이미 수락 한 답변이 있었지만 어떤 이유로 삭제 된 것 같습니다. 그것이 내가 Termux를 사용하기 시작했고 여전히 그것을 사용하고있을 때 당신의 대답을 받아 들인 이유입니다.
MariusR

6
감사. Termux를 참조하기 전에 얼마나 많은 검색을해야하는지에 놀랐습니다. 이 스레드는 내가 우연히 초기 결과 중 하나였다, 그래서 나는 다음 수색자에게 바로 가기를 제공하기 위해 여기에 추가 거라고하지만)
파이로

... 그것은 "링크는"대답, 그래서 아마 이것 또한 어떤 점에서 삭제됩니다 이었기 때문에 그 아마, 보호 된 질문에 11 upvotes와 허용 대답을 삭제 확인 것 같다
jcesarmobile

2
Termux 앱을 종료하면 서버가 백그라운드에서 계속 실행될 수 있는지 알고 있습니까? Android를 잠그면 어떻습니까? 감사.
wayofthefuture

5
나는 6 HUAWEI 주에 그것을 사용 nodejs이 찾기 전에 $ 쉽다 업데이트가 쉽다 업그레이드를 $했습니다
M.Hefny

16

도리-node.js

훌륭한 새 응용 프로그램
은 휴대 전화를 루팅 할 필요가 없으며 어떤 곳에서든 js 파일을 실행할 수 있습니다.

  • node.js 런타임 (Android에서 ES2015 / ES6, ES2016 자바 스크립트 및 node.js API 실행)
  • 문서에서 실행되는 API 문서 및 인스턴트 코드
  • 구문 강조 코드 편집기
  • npm 지원
  • 리눅스 터미널 (toybox 0.7.4). shell의 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. 안드로이드의 sdcard (/ sdcard 또는 / sdcard / path / to / ...)에 'node'복사

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


2
예를 들어 npm 설치를 실행하는 데 몇 가지 문제가있는 것 같습니다. 예를 들어 "/"에 대한 액세스 권한이없고 FS에 대한 읽기 전용 액세스 권한이 있다고 불평했습니다.
Michael

연락처 : (tempage.io@gmail.com)
Sedric Heidarizarei

아주 오래된 버전의 Node.js 만 지원하는 것 같습니다. 6.x의 소개 나는이 게시로 현재는 10.x에서 / 11.x의 동안
hippietrail

이제 업데이트가 훨씬 쉬워졌습니다. <pre> node.js 업그레이드 : '파일 다운로드'메뉴-> 'appfiles'확인-> '실행 가능'확인 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 참조 myket.ir/app/io.tempage.dorynode?lang=en </ pre>
Kay Marquardt

13

모바일 앱에 Node.js를 사용할 수 있습니다 .

armeabi-v7a, x86, arm64-v8a, x86_64 용으로 사전 빌드 된 바이너리를 사용하여 Android 기기 및 시뮬레이터에서 작동합니다. iOS에서도 작동하지만이 질문의 범위를 벗어납니다.

JXcore와 마찬가지로 전용 스레드에서 앱과 동일한 프로세스에서 Node.js 엔진을 호스팅하는 데 사용됩니다. JXcore와는 달리 기본적으로 Android에서 실행되는 몇 가지 이식성 수정 사항이있는 라이브러리로 빌드 된 순수한 Node.js입니다. 즉, 메인 라인 Node.js로 프로젝트를 최신 상태로 유지하는 것이 훨씬 더 쉽습니다.

CordovaReact Native 용 플러그인 도 사용할 수 있습니다. 플러그인은 해당 프레임 워크의 JavaScript 측과 Node.js 측 사이에 통신 계층을 제공합니다. 또한 빌드시 모듈 패키징 및 네이티브 모듈 크로스 컴파일과 같은 몇 가지 사항을 자동으로 처리하여 개발을 단순화합니다.

전체 공개 : 저는 모바일 앱용 Node.js를 개발하는 회사에서 일합니다.


감사합니다. 잘 작동합니다! npm여러 파일 지원으로 내 요구 사항을 완전히 충족했습니다 (결국 사용하지 않았지만 사용할 수 있다는 것을 아는 것이 좋습니다). 거의 canvas작업을 수행했지만 Linux (현재 Windows 사용)에서 몇 가지 추가 단계를 수행해야했고 필요하지 않은 대체 라이브러리를 찾았습니다.
GuiRitter 2018-08-08

히야, 알렉시스. 이 실행이 표현됩니까?
mahesh

안녕하세요 @mahesh, 당신은 확실히 익스프레스를 사용할 수 있습니다. http 서버 및 p2p 통신 (예 : 웹 소켓 사용)을 실행하는 것은 nodejs-mobile을 사용하는 매우 일반적인 시나리오입니다. : 당신은 코르도바를 사용하려는 경우, 당신은 그것을 사용으로 유용 표현이 샘플 응용 프로그램 찾을 수 github.com/JaneaSystems/nodejs-mobile-samples/blob/...
알렉시스 Campailla


1

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 서버를 실행하는 것이 좋습니다.


..... 코드를 수정하여 Nginx를 NodeJS로 대체합니다 .... 이 작업을 수행하는 방법에 대한 예제를 보여 주면 더 좋을 것입니다.
Edijae Crusar

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.