Interagiere mit Python auf Android vom PC über adb

Mit SL4A können Sie Python REPL auch unter Android verwenden. Wenn Sie jedoch einen PC vor sich haben, ist es praktisch, wenn Sie ihn mit einer Tastatur und einem Monitor austauschen können.

Starten Sie den SL4A-Dienst

Starten Sie zunächst den RPC-Dienst. So bedienen Sie die App und die Shell Es gibt einen Weg, um von vorne zu beginnen.

Starten Sie von der App

Öffnen Sie die Liste der Dolmetscher in der SL4A-App und wählen Sie "Server starten" aus dem Menü.

server.png

Wählen Sie "Öffentlich", um den Port nach außen zu öffnen, und "Privat", um den Port nur nach innen zu öffnen.

Wenn der Server gestartet wird, wird der Port für RPC geöffnet. Sie können die Portnummer anhand der Elemente überprüfen, die in der Benachrichtigungsleiste angezeigt werden.

Die Portnummer wird normalerweise zufällig festgelegt, aber Sie können den Port mit "Server Port" im Einstellungselement der Anwendung festlegen.

Aus der Shell starten

Verwenden Sie den Befehl am in der Shell wie folgt:

python


$ am start \
 -a com.googlecode.android_scripting.action.LAUNCH_SERVER \
 -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher

Server-Port-Einstellungen haben keine Auswirkung, aber Intent-Parameter (https://github.com/damonkohler/sl4a/blob/master/android/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptingLayerService.java) Sie können Angeben mit # L215).

python


$ 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

Standardmäßig wird es als privat geöffnet, Sie können es jedoch mit einem Parameter öffentlich machen.

python


$ 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

Starten Sie Python

Starten Sie dann Python.

Es gibt eine Methode zur Verwendung von Python von Android selbst und eine Methode zur Verwendung von Python von PC.

Verwenden Sie Python unter Android

Starten Sie den Python-Interpreter-Body direkt auf der ADB-Shell. Geben Sie zu diesem Zeitpunkt den Port des gestarteten Servers in der Umgebungsvariablen "AP_PORT" an.

python


#Ich weiß nicht, ob es in Ihrer Umgebung funktioniert, da die Umgebungseinstellungen durch Ausprobieren übergeben werden.
#12345 ist die Portnummer des RPC-Servers
$ 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

Wenn Python startet, können Sie so sprechen, wie es ist.

Verwenden Sie Python auf Ihrem PC

RPC kann durchgeführt werden, wenn der Port von Python auf der PC-Seite verbunden ist. Verwenden Sie android.py, das in python_extras.zip enthalten ist, als "Import".

Wenn Sie den Server Private gestartet haben, verwenden Sie den adb-Port forward.

python


$ adb forward tcp:12345 tcp:12345
$ AP_PORT=12345 python

Wenn Sie den Server in Public gestartet haben, geben Sie die Android-IP-Adresse in der Umgebungsvariablen "AP_HOST" an.

python


$ AP_HOST=192.168.1.123 AP_PORT=12345 python

Geben Sie in beiden Fällen die Portnummer des RPC-Servers in der Umgebungsvariablen "AP_PORT" an. Anstelle von Umgebungsvariablen können Sie die Adresse auch als Argument angeben, z. B. "droid = android.Android (('127.0.0.1', 12345))".

Hoffentlich können Sie die gleichen Funktionen wie das SL4A-Hauptgerät verwenden.

python


>>> import android
>>> droid = android.Android()
>>> droid.makeToast("hello, world!")
Result(id=0, result=None, error=None)

(Referenz: Stapelüberlauf - Verbindung zum SL4A-Server nicht möglich)

Recommended Posts

Interagiere mit Python auf Android vom PC über adb
Genau korrekte Android-Uhr mit ADB und Python
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Mit Skype benachrichtigen Sie mit Skype von Python!
OpenJTalk unter Windows 10 (Sprechen Sie Japanisch mit Python aus der Umgebungskonstruktion)
Hinweise zum Importieren von Daten aus MySQL oder CSV mit Python
Rufen Sie C von Python mit DragonFFI auf
Verwenden von Rstan aus Python mit PypeR
Installieren Sie Python von der Quelle mit Ansible
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Führen Sie Aprili von Python auf Orange aus
Hinweise zur Verwendung von rstrip mit Python.
Hinweise zum Zugriff auf dashDB über Python
Rufen Sie Python von Nim mit Nimpy auf
Erste Schritte mit Python 3.8 unter Windows
Laden Sie fbx aus Python mitinema4d
Rufen Sie C / C ++ von Python auf dem Mac auf
[Memo] Tweet auf Twitter mit Python
Senden Sie E-Mails über Google Mail mit Python 3.4.3.
Aktualisieren Sie Mac Python von 2 auf 3
Datenintegration von der Python-App unter Linux zu Amazon Redshift mit ODBC
Versuchen Sie, den RSS-Feed von arXiv mit Python von Raspeye auf Twitter zu twittern
Senden und Empfangen von Binärdaten über serielle Kommunikation mit Python3 (auf Mac)
Datenintegration von der Python-App unter Windows zu Amazon Redshift mit ODBC
Sammeln von Informationen von Twitter mit Python (Twitter API)
Empfangen Sie Textdaten von MySQL mit Python
Holen Sie sich HTML von Element mit Python-Selen
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Tweet von Python mit Twitter Developer + Tweepy
Ein Memo mit Python2.7 und Python3 in CentOS
Verfolgen Sie aktive Anwendungen auf einem Mac mit Python
[C] [Python] Lesen mit AquesTalk unter Linux
Hinweise zur japanischen OCR mit Python
Geschäftseffizienz von Grund auf mit Python
Push-Benachrichtigung vom Python-Server an Android
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Bearbeiten von Azure CosmosDB aus Python Part.2
Herstellen einer Verbindung von Python zu MySQL unter CentOS 6.4
Bildaufnahme von der Kamera mit Python + OpenCV
Laden Sie mit Python Dateien im Web herunter
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Erste Schritte mit Dynamo von Python Boto
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Scraping von einer authentifizierten Site mit Python
Verwenden von C ++ - Funktionen aus Python mit pybind11
L-Chika TWE Lite von Python über ToCoStick
Teilen Sie VLC-Wiedergabelisten auf PC und Android
PIL mit Python 3.x unter macOS installieren
Arbeiten mit GPS in Python für Raspberry Pi 3
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)
Micro Service mit GCP auf RoR von Grund auf neu
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
Strategie zur Monetarisierung mit Python Java
Bildverarbeitung von Grund auf mit Python (5) Fourier-Transformation
Erstellen Sie eine Python-Umgebung mit ansible auf centos6