adb를 통해 PC에서 안드로이드의 파이톤과 대화

4485 단어 sl4aAndroidPython
SL4A에서는 파이톤의 REPL을 안드로이드에서도 사용할 수 있다.다만, 가까스로 눈앞에 컴퓨터가 있으면 키보드와 모니터로 리플을 할 수 있어 훨씬 편리하다.

SL4A 서비스 시작


먼저 RPC 서비스를 시작합니다.운영 애플리케이션 및 셸
를 참고하십시오.

애플리케이션에서 시작


SL4A 응용 프로그램에서 해석기 목록을 열고 메뉴에서 Start Server를 선택합니다.

Public을 선택하면 포트가 외부로 열리고 Private는 내부에만 표시됩니다.
서버가 시작되면 RPC에서 사용하는 포트가 열립니다.알림 표시줄의 항목에서 포트 번호를 확인할 수 있습니다.
일반적으로 포트 번호는 임의로 결정되지만 응용 프로그램 설정 항목에서 "Server Port"를 사용하여 포트를 고정할 수 있습니다.

케이스에서 부팅


셸에서 다음 명령am을 사용합니다.
$ am start \
 -a com.googlecode.android_scripting.action.LAUNCH_SERVER \
 -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher
Server Port 설정은 영향을 주지 않지만 내부 매개 변수에서 수행지정할 수 있습니다.
$ am start \
 -a com.googlecode.android_scripting.action.LAUNCH_SERVER \
 -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher \
 --ei com.googlecode.android_scripting.extra.USE_SERVICE_PORT 12345
기본적으로 이것은 개인적으로 열려 있지만, 파라미터를 사용하여 공개할 수 있습니다.
$ am start \
 -a com.googlecode.android_scripting.action.LAUNCH_SERVER \
 -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher \
 --ez om.googlecode.android_scripting.extra.USE_PUBLIC_IP true

Python 시작


그런 다음 Python을 시작합니다.
안드로이드 호스트의 파이톤을 사용하는 방법과 PC의 파이톤을 사용하는 방법이 있다.

Android 호스트를 사용하는 Python


파이썬 해석기 주체가 adb 케이스에서 직접 작동합니다.AP_PORT 환경 변수에 부팅할 서버 포트를 지정합니다.
# 環境設定は試行錯誤して通ったものなのでお使いの環境で動くかはわかりません
# 12345はRPCサーバのポート番号です
$ AP_PORT=12345 \
  LD_LIBRARY_PATH=/data/data/com.googlecode.pythonforandroid/files/python/lib:$LD_LIBRARY_PATH \
  PYTHONPATH=/sdcard/com.googlecode.pythonforandroid/extras/python \
  PYTHONHOME=/data/data/com.googlecode.pythonforandroid/files/python \
  /data/data/com.googlecode.pythonforandroid/files/python/bin/python
python을 시작하면 직접 대화를 할 수 있습니다.

PC를 사용하는 파이썬


컴퓨터 쪽 파이토존 포트를 연결하면 RPC도 가능하다.python_extras.zip 중의 android.pyimport를 사용합니다.
Private를 사용하여 서버를 시작할 때 adb의 포트 피드백을 사용합니다.
$ adb forward tcp:12345 tcp:12345
$ AP_PORT=12345 python
Public을 사용하여 서버를 시작할 때AP_HOST 환경 변수를 사용하여 안드로이드의 IP 주소를 지정합니다.
$ AP_HOST=192.168.1.123 AP_PORT=12345 python
임의의 경우AP_PORT 환경 변수를 사용하여 RPC 서버의 포트 번호를 지정합니다.환경 변수droid = android.Android(('127.0.0.1', 12345)) 대신 매개 변수를 사용하여 주소를 지정할 수도 있습니다.
SL4A 호스트와 동일한 기능을 사용할 수 있습니다.
>>> import android
>>> droid = android.Android()
>>> droid.makeToast("hello, world!")
Result(id=0, result=None, error=None)
(참조: Stack Overflow - Unable to connect to SL4A server

좋은 웹페이지 즐겨찾기