There are several ways to use Python on Android. The following table summarizes those projects which are currently active:
Project |
General |
APIs |
Build |
||||||
Python versions |
Google Play links |
User interface |
Android APIs |
Call Python from Java |
Native Python packages |
Standalone APK |
iOS |
Desktop OSs |
|
BeeWare is a toolkit for developing cross-platform apps with native user interfaces. Its Android support is based on Chaquopy. |
3.9 - 3.13 |
None |
Native Android |
All |
Yes |
Yes |
Yes |
||
Chaquopy is a plugin for Android Studio's Gradle-based build system. |
3.8 - 3.13 |
Yes |
No |
No |
|||||
Kivy is a cross-platform OpenGL-based user interface toolkit. |
2.7, 3.5, 3.6 |
Kivy |
All via PyJNIus or Plyer |
Via interface |
Yes |
Yes |
Yes |
||
pyqtdeploy is a tool for deploying PyQt applications. |
3.6 |
None |
Qt |
Some via Qt |
No |
Some |
Yes |
Yes |
Yes |
QPython is an on-device script engine and development environment. |
2.7, 3.2, 3.6 |
Kivy, SL4A |
All via PyJNIus or SL4A |
No |
No |
No |
No |
||
Termux is a Linux distribution for Android that ships Python as well as a local build environment |
2.7, 3.6 |
Terminal |
Some via Termux:API |
No |
Any where dependencies are packaged |
No |
No |
No |
In addition, there are a number of projects which are inactive or incomplete:
- SL4A (Scripting Layer for Android), originally named ASE (Android Scripting Environment), is a set of "facades" which expose a greatly-simplified subset of the Android API. The project was originally developed within Google, but is no longer supported by them. However, a fork of the library is distributed with QPython.
PySide (the Python binding for the Qt toolkit) has some preliminary support for Android.
Although Android's primary programming language is Java, there is no known port of Jython to the platform.