.. _using-android:

=======================
Using Python on Android
=======================

Python on Android is unlike Python on desktop platforms. On a desktop platform,
Python is generally installed as a system resource that can be used by any user
of that computer. Users then interact with Python by running a :program:`python`
executable and entering commands at an interactive prompt, or by running a
Python script.

On Android, there is no concept of installing as a system resource. The only unit
of software distribution is an "app". There is also no console where you could
run a :program:`python` executable, or interact with a Python REPL.

As a result, the only way you can use Python on Android is in embedded mode – that
is, by writing a native Android application, embedding a Python interpreter
using ``libpython``, and invoking Python code using the :ref:`Python embedding
API <embedding>`. The full Python interpreter, the standard library, and all
your Python code is then packaged into your app for its own private use.

The Python standard library has some notable omissions and restrictions on
Android. See the :ref:`API availability guide <mobile-availability>` for
details.

Adding Python to an Android app
-------------------------------

Most app developers should use one of the following tools, which will provide a
much easier experience:

* `Briefcase <https://briefcase.beeware.org>`__, from the BeeWare project
* `Buildozer <https://buildozer.readthedocs.io>`__, from the Kivy project
* `Chaquopy <https://chaquo.com/chaquopy>`__
* `pyqtdeploy <https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/>`__
* `Termux <https://termux.dev/en/>`__

If you're sure you want to do all of this manually, read on. You can use the
:source:`testbed app <Platforms/Android/testbed>` as a guide; each step below contains a
link to the relevant file.

* First, acquire a build of Python for Android:

  * The easiest way is to download an Android release from `python.org
    <https://www.python.org/downloads/android/>`__. The ``prefix`` directory
    mentioned below is at the top level of the package.

  * Or if you want to build it yourself, follow the instructions in
    :source:`Platforms/Android/README.md`. The ``prefix`` directory will be created under
    :samp:`cross-build/{HOST}`.

* Add code to your :source:`build.gradle <Platforms/Android/testbed/app/build.gradle.kts>`
  file to copy the following items into your project. All except your own Python
  code can be copied from ``prefix/lib``:

  * In your JNI libraries:

    * ``libpython*.*.so``
    * ``lib*_python.so`` (external libraries such as OpenSSL)

  * In your assets:

    * ``python*.*`` (the Python standard library)
    * ``python*.*/site-packages`` (your own Python code)

* Add code to your app to :source:`extract the assets to the filesystem
  <Platforms/Android/testbed/app/src/main/java/org/python/testbed/MainActivity.kt>`.

* Add code to your app to :source:`start Python in embedded mode
  <Platforms/Android/testbed/app/src/main/c/main_activity.c>`. This will need to be C code
  called via JNI.

Building a Python package for Android
-------------------------------------

Python packages can be built for Android as wheels and released on PyPI. The
recommended tool for doing this is `cibuildwheel
<https://cibuildwheel.pypa.io/en/stable/platforms/#android>`__, which automates
all the details of setting up a cross-compilation environment, building the
wheel, and testing it on an emulator.
