Android

Legacy Wiki Page

This page was migrated from the old MoinMoin-based wiki. Information may be outdated or no longer applicable. For current documentation, see python.org.

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.10 - 3.14

None

Native Android

All

Yes

List

Yes

Yes

Yes

Chaquopy is a plugin for Android Studio’s Gradle-based build system.

Demo

Yes

No

No

Kivy is a cross-platform OpenGL-based user interface toolkit.

2.7, 3.5, 3.6

Demo

Kivy

All via PyJNIus or Plyer

Via interface

List

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

QPython

Kivy, SL4A

All via PyJNIus or SL4A

No

List

No

No

No

Termux is a Linux distribution for Android that ships Python as well as a local build environment

2.7, 3.6

Termux
Termux:API

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.