> **Источник:** https://python-all.ru/3.15/using/android.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 6. Использование Python на Android

Python на Android отличается от Python на настольных платформах. На настольной платформе, Python обычно устанавливается как системный ресурс, доступный любому пользователю этого компьютера. Пользователи взаимодействуют с Python, запуская исполняемый файл **python** и вводя команды в интерактивной подсказке, либо запуская скрипт Python.

В Android отсутствует понятие установки как системного ресурса. Единственной единицей распространения программного обеспечения является «приложение». Также нет консоли, где можно было бы запустить исполняемый файл **python** или взаимодействовать с Python REPL.

В результате единственный способ использовать Python на Android – это встроенный режим: написать нативное приложение для Android, встроить интерпретатор Python с помощью `libpython` и вызывать код Python через [API для встраивания Python](https://python-all.ru/3.15/extending/embedding.html#embedding). Полный интерпретатор Python, стандартная библиотека и весь ваш код Python затем упаковываются в приложение для его собственного использования.

Стандартная библиотека Python имеет некоторые заметные пропуски и ограничения на Android. Подробнее см. [руководство по доступности API](https://python-all.ru/3.15/library/intro.html#mobile-availability).

## 6.1. Добавление Python в приложение Android

Большинство разработчиков приложений должны использовать один из следующих инструментов, которые значительно упростят процесс:

- [Briefcase](https://python-all.ru/3.15/using/android.html), из проекта BeeWare
- [Buildozer](https://python-all.ru/3.15/using/android.html), из проекта Kivy
- [Chaquopy](https://python-all.ru/3.15/using/android.html)
- [pyqtdeploy](https://python-all.ru/3.15/using/android.html)
- [Termux](https://python-all.ru/3.15/using/android.html)

Если вы уверены, что хотите делать всё это вручную, читайте дальше. Вы можете использовать приложение [testbed app](https://python-all.ru/3.15/using/android.html) в качестве руководства; каждый шаг ниже содержит ссылку на соответствующий файл.

- Сначала получите сборку Python для Android:

  - Самый простой способ – загрузить Android-релиз с [python.org](https://python-all.ru/3.15/using/android.html). Упомянутый ниже каталог `prefix` находится на верхнем уровне пакета.
  - Или, если хотите собрать его самостоятельно, следуйте инструкциям в [Android/README.md](https://python-all.ru/3.15/using/android.html). Каталог `prefix` будет создан в `cross-build/HOST`.
- Добавьте код в файл [build.gradle](https://python-all.ru/3.15/using/android.html) , чтобы скопировать следующие элементы в проект. Всё, кроме вашего собственного кода Python, можно скопировать из `prefix/lib`:

  - В ваших JNI-библиотеках:

    - `libpython*.*.so`
    - `lib*_python.so` (внешние библиотеки, такие как OpenSSL)
  - В ваших ресурсах (assets):

    - `python*.*` (стандартная библиотека Python)
    - `python*.*/site-packages` (ваш собственный код Python)
- Добавьте код в приложение, чтобы [извлечь ресурсы (assets) в файловую систему](https://python-all.ru/3.15/using/android.html).
- Добавьте код в приложение, чтобы [запустить Python во встроенном режиме](https://python-all.ru/3.15/using/android.html). Это должен быть код на C, вызываемый через JNI.

## 6.2. Сборка пакета Python для Android

Пакеты Python могут быть собраны для Android в виде колёс (wheels) и опубликованы на PyPI. Рекомендуемый инструмент для этого – [cibuildwheel](https://python-all.ru/3.15/using/android.html), который автоматизирует все детали настройки среды кросс-компиляции, сборки колеса и тестирования на эмуляторе.
