android.md
1> **Источник:** https://python-all.ru/3.14/using/android.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 6. Использование Python на Android89Python на Android отличается от Python на настольных платформах. На настольной платформе, Python обычно устанавливается как системный ресурс, доступный любому пользователю этого компьютера. Пользователи взаимодействуют с Python, запуская исполняемый файл **python** и вводя команды в интерактивной подсказке, либо запуская скрипт Python.1011В Android отсутствует понятие установки как системного ресурса. Единственной единицей распространения программного обеспечения является «приложение». Также нет консоли, где можно было бы запустить исполняемый файл **python** или взаимодействовать с Python REPL.1213В результате единственный способ использовать Python на Android – это встроенный режим: написать нативное приложение для Android, встроить интерпретатор Python с помощью `libpython` и вызывать код Python через [API для встраивания Python](https://python-all.ru/3.14/extending/embedding.html#embedding). Полный интерпретатор Python, стандартная библиотека и весь ваш код Python затем упаковываются в приложение для его собственного использования.1415Стандартная библиотека Python имеет некоторые заметные пропуски и ограничения на Android. Подробнее см. [руководство по доступности API](https://python-all.ru/3.14/library/intro.html#mobile-availability).1617## 6.1. Добавление Python в приложение Android1819Большинство разработчиков приложений должны использовать один из следующих инструментов, которые значительно упростят процесс:2021- [Briefcase](https://python-all.ru/3.14/using/android.html), из проекта BeeWare22- [Buildozer](https://python-all.ru/3.14/using/android.html), из проекта Kivy23- [Chaquopy](https://python-all.ru/3.14/using/android.html)24- [pyqtdeploy](https://python-all.ru/3.14/using/android.html)25- [Termux](https://python-all.ru/3.14/using/android.html)2627Если вы уверены, что хотите делать всё это вручную, читайте дальше. Вы можете использовать приложение [testbed app](https://python-all.ru/src/3.14/Android/testbed) в качестве руководства; каждый шаг ниже содержит ссылку на соответствующий файл.2829- Сначала получите сборку Python для Android:3031 - Самый простой способ – загрузить Android-релиз с [python.org](https://python-all.ru/3.14/using/android.html). Упомянутый ниже каталог `prefix` находится на верхнем уровне пакета.32 - Или, если хотите собрать его самостоятельно, следуйте инструкциям в [Android/README.md](https://python-all.ru/src/3.14/Android/README.md). Каталог `prefix` будет создан в `cross-build/HOST`.33- Добавьте код в файл [build.gradle](https://python-all.ru/src/3.14/Android/testbed/app/build.gradle.kts) , чтобы скопировать следующие элементы в проект. Всё, кроме вашего собственного кода Python, можно скопировать из `prefix/lib`:3435 - В ваших JNI-библиотеках:3637 - `libpython*.*.so`38 - `lib*_python.so` (внешние библиотеки, такие как OpenSSL)39 - В ваших ресурсах (assets):4041 - `python*.*` (стандартная библиотека Python)42 - `python*.*/site-packages` (ваш собственный код Python)43- Добавьте код в приложение, чтобы [извлечь ресурсы (assets) в файловую систему](https://python-all.ru/src/3.14/Android/testbed/app/src/main/java/org/python/testbed/MainActivity.kt).44- Добавьте код в приложение, чтобы [запустить Python во встроенном режиме](https://python-all.ru/src/3.14/Android/testbed/app/src/main/c/main_activity.c). Это должен быть код на C, вызываемый через JNI.4546## 6.2. Сборка пакета Python для Android4748Пакеты Python могут быть собраны для Android в виде колёс (wheels) и опубликованы на PyPI. Рекомендуемый инструмент для этого – [cibuildwheel](https://python-all.ru/3.14/using/android.html), который автоматизирует все детали настройки среды кросс-компиляции, сборки колеса и тестирования на эмуляторе.49