Использование Python на Android
Python на Android отличается от Python на настольных платформах. На настольной платформе Python обычно устанавливается как системный ресурс, доступный любому пользователю компьютера. Затем пользователи взаимодействуют с Python, запуская исполняемый файл python и вводя команды в интерактивной командной строке или запуская скрипт Python.
На Android понятие установки в качестве системного ресурса отсутствует. Единственная единица распространения программного обеспечения — это «приложение». Здесь также нет консоли, в которой можно было бы запустить исполняемый файл python или взаимодействовать с REPL Python.
В результате единственный способ использовать Python на Android — это встроенный режим: написать нативное приложение для Android, встроить интерпретатор Python с помощью libpython и вызывать код Python через API встраивания Python. Полный интерпретатор Python, стандартная библиотека и весь ваш код Python затем упаковываются в приложение для его собственного использования.
Стандартная библиотека Python на Android имеет некоторые заметные пропуски и ограничения. Подробности см. в руководстве по доступности API.
6.1. Добавление Python в приложение для Android
Большинству разработчиков приложений следует воспользоваться одним из следующих инструментов, которые значительно упростят работу:
- Briefcase из проекта BeeWare
- Buildozer из проекта Kivy
- Chaquopy
- pyqtdeploy
- Termux
Если вы уверены, что хотите сделать всё это вручную, читайте дальше. В качестве руководства можно использовать тестовое приложение testbed; каждый шаг ниже содержит ссылку на соответствующий файл.
-
Сначала получите сборку Python для Android:
- Проще всего скачать выпуск для Android с сайта python.org. Каталог
prefix, упомянутый ниже, находится в корне пакета. - Или, если вы хотите собрать его самостоятельно, следуйте инструкциям в файле Android/README.md. Каталог
prefixбудет создан внутриcross-build/HOST.
- Проще всего скачать выпуск для Android с сайта python.org. Каталог
-
Добавьте код в файл build.gradle, чтобы скопировать в проект следующие элементы. Всё, кроме вашего собственного кода Python, можно скопировать из
prefix/lib:-
В библиотеках JNI:
libpython*.*.so-
lib*_python.so(внешние библиотеки, например OpenSSL)
-
В ресурсах:
-
python*.*(стандартная библиотека Python) -
python*.*/site-packages(ваш собственный код Python)
-
-
- Добавьте в приложение код для извлечения ресурсов в файловую систему.
- Добавьте в приложение код для запуска Python во встроенном режиме. Для этого потребуется код на C, вызываемый через JNI.
6.2. Сборка пакета Python для Android
Пакеты Python можно собирать для Android в виде wheels и публиковать на PyPI. Рекомендуемый для этого инструмент — cibuildwheel, который автоматизирует все этапы настройки среды кросс-компиляции, сборки wheel и его тестирования в эмуляторе.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/using/android.html