• Stars
    star
    8,263
  • Rank 4,467 (Top 0.09 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 13 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Turn your Python application into an Android APK

python-for-android

Unit tests & build apps Coverage Status Backers on Open Collective Sponsors on Open Collective

python-for-android is a packaging tool for Python apps on Android. You can create your own Python distribution including the modules and dependencies you want, and bundle it in an APK or AAB along with your own code.

Features include:

  • Different app backends including Kivy, PySDL2, and a WebView with Python webserver.
  • Automatic support for most pure Python modules, and built in support for many others, including popular dependencies such as numpy and sqlalchemy.
  • Multiple architecture targets, for APKs optimised on any given device.
  • AAB: Android App Bundle support.

For documentation and support, see:

Documentation

Follow the quickstart instructions to install and begin creating APKs and AABs.

Quick instructions: install python-for-android with:

pip install python-for-android

(for the develop branch: pip install git+https://github.com/kivy/python-for-android.git)

Test that the install works with:

p4a --version

To build any actual apps, set up the Android SDK and NDK as described in the quickstart. Use the SDK/NDK API level & NDK version as in the quickstart, other API levels may not work.

With everything installed, build an APK with SDL2 with e.g.:

p4a apk --requirements=kivy --private /home/username/devel/planewave_frozen/ --package=net.inclem.planewavessdl2 --name="planewavessdl2" --version=0.5 --bootstrap=sdl2

If you need to deploy your app on Google Play, Android App Bundle (aab) is required since 1 August 2021:

For full instructions and parameter options, see the documentation.

Support

If you need assistance, you can ask for help on our mailing list:

We also have #support Discord channel.

Contributing

We love pull requests and discussing novel ideas. Check out the Kivy project contribution guide and feel free to improve python-for-android.

See our documentation for more information about the python-for-android development and release model, but don't worry about the details. You just need to make a pull request, we'll take care of the rest.

The following mailing list and IRC channel are used exclusively for discussions about developing the Kivy framework and its sister projects:

We also have #dev Discord channel.

License

python-for-android is released under the terms of the MIT License. Please refer to the LICENSE file.

History

In 2015 these tools were rewritten to provide a new, easier-to-use and easier-to-extend interface. If you'd like to browse the old toolchain, its status is recorded for posterity at at https://github.com/kivy/python-for-android/tree/old_toolchain.

In the last quarter of 2018 the python recipes were changed. The new recipe for python3 (3.7.1) had a new build system which was applied to the ancient python recipe, allowing us to bump the python2 version number to 2.7.15. This change unified the build process for both python recipes, and probably solved various issues detected over the years. These unified python recipes require a minimum target api level of 21, Android 5.0 - Lollipop. If you need to build targeting an api level below 21, you should use an older version of python-for-android (<=0.7.1).

On March of 2020 we dropped support for creating apps that use Python 2. The latest python-for-android release that supported building Python 2 was version 2019.10.6.

On August of 2021, we added support for Android App Bundle (aab). As a collateral, now We support multi-arch apk.

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

More Repositories

1

kivy

Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS
Python
17,477
star
2

buildozer

Generic Python packager for Android and iOS
Python
1,708
star
3

plyer

Plyer is a platform-independent Python wrapper for platform-dependent APIs
Python
1,589
star
4

pyjnius

Access Java classes from Python
Python
1,384
star
5

kivy-designer

UI designer for Kivy - DEPRECATED
Python
815
star
6

kivy-ios

Toolchain for compiling Python / Kivy / other libraries for iOS
Python
771
star
7

kivent

KivEnt is an entity-based game engine for Kivy
Python
573
star
8

audiostream

Audio API for streaming raw data to speakers
Python
190
star
9

pyobjus

Access Objective-C classes from Python
Python
177
star
10

kivy-website

Website of kivy.org
HTML
166
star
11

kivy-remote-shell

Remote SSH + Python interactive shell in Kivy
Python
110
star
12

oscpy

An efficient OSC implementation compatible with python2.7 and 3.5+
Python
109
star
13

kivy-launcher

Reboot of the older Kivy launcher
Python
107
star
14

pythonar

python auto reloader
Python
44
star
15

kivy-sdk-packager

Scripts for Kivy SDK generation on Windows, OS X and Linux
Python
38
star
16

kivy-berkelium

Berkelium extension for Kivy - DEPRECATED, use https://github.com/kivy-garden/garden.cefpython instead.
Python
25
star
17

p4a-cloud

Build cloud for Python for android - DEPRECATED
HTML
22
star
18

piki

kivy games for raspberry pi
Python
18
star
19

aprofiler

Simple tool that allow you to emit start/end event, and marks
Python
17
star
20

kivy-server

Docker configuration for the Kivy server
Shell
12
star
21

pycon2013

pycon 2013 kivy presentation
JavaScript
9
star
22

kivy-ideas

Various ideas related to the Kivy project.
9
star
23

condiment

Conditionally include or remove code, according to the environment variables
Python
7
star
24

kivy-translations

This is the repository where Kivy translations are managed - DEPRECATED
Python
7
star
25

plyer_demo

an android app to showcase all plyer features
Python
4
star
26

kivy-design

Graphical elements used by the Kivy Organization
4
star
27

ncis

Python
4
star
28

angle-builder

Build and releases ANGLE binaries for different platforms
Python
4
star
29

ncis-inspector

A Kivy app to interact with the NCIS module in Kivy apps
Python
3
star
30

p4a-pygame-bootstrap-components

The jni components of the python-for-android pygame bootstrap
C
3
star
31

kivy_pong_demo

Demo kivy pong-game app
Python
3
star
32

templates

This is a template repository, supposed to help developers with getting a quick setup of a kivy app repository that uses GitHub actions to build packages for various platforms.
Python
2
star
33

ncis-kivy

an ncis module to inspect kivy applications
Python
1
star
34

ncis-python

Python
1
star
35

kivy-website-docs

1
star
36

mcnotify

GitHub App that comments on predefined issues after certain events
JavaScript
1
star