Build engine for the PyDevices Runner APK (org.pydevices.runner) — the
generic, debuggable Android host that
pydevices/bin/android.py
stages scripts onto.
You almost certainly do not need this repository. android.py downloads and
installs a prebuilt Runner from this repo's GitHub Releases:
android.py --install-apkUsing the Runner — staging scripts, the attach REPL, orientation, timers, audio, Android TV — is documented in pydevices/docs/android.md. This repo is only how the APK gets built.
- Interpreter: CPython under python-for-android with the SDL2 bootstrap.
- Payload: native LVGL and pygraphics wheels plus the complete PyDevices library stack.
- Stdio bridge:
p4a_app/stdio_sidecar.pylistens on127.0.0.1:18765soandroid.pycan attach bidirectional terminal stdio and a MicroPython-style REPL. - Startup:
boot.pysets up environment, path layout, and the sidecar, then runs whateverandroid.pystaged intorun/.
./build_android.sh -yOutput: p4a_app/bin/runner-0.1.0-arm64-v8a_x86_64-debug.apk
The build prerequisites, buildozer configuration, p4a recipes, and the
getEntryPoint patch are documented once, in
android-template/docs/building.md —
this repo used to carry a byte-identical copy.
GitHub Actions builds the multi-ABI (arm64-v8a, x86_64) debug APK on release
tags and publishes pydevices-runner-debug.apk to GitHub Releases, which is what
android.py --install-apk fetches.