Turn your Python application into an Android APK
python-for-android is a packaging tool for Python apps on Android. You cancreate your own Python distribution including the modules anddependencies you want, and bundle it in an APK along with your own code.
- Support for building with both Python 2 and Python 3.
- Different app backends including Kivy, PySDL2, and a WebView withPython webserver.
- Automatic support for most pure Python modules, and built in supportfor many others, including popular dependencies such as numpy andsqlalchemy.
- Multiple architecture targets, for APKs optimised on any givendevice.
For documentation and support, see:
- Website: http://python-for-android.readthedocs.io
- Mailing list: https://groups.google.com/forum/#!forum/kivy-users orhttps://groups.google.com/forum/#!forum/python-android.
Follow the quickstartinstructionsto install and begin creating APKs.
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:
To build any actual apps, set up the Android SDK and NDKas 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
For full instructions and parameter options, see thedocumentation.
If you need assistance, you can ask for help on our mailing list:
- User Group: https://groups.google.com/group/kivy-users
- Email: email@example.com
We also have #support Discord channel.
We love pull requests and discussing novel ideas. Check out the Kivyproject contribution guide andfeel free to improve python-for-android.
See ourdocumentationfor more information about the python-for-android development andrelease model, but don’t worry about the details. You just need tomake a pull request, we’ll take care of the rest.
The following mailing list and IRC channel are used exclusively fordiscussions about developing the Kivy framework and its sister projects:
- Dev Group: https://groups.google.com/group/kivy-dev
- Email: firstname.lastname@example.org
We also have #dev Discord channel.
python-for-android is released under the terms of the MIT License.Please refer to the LICENSE file.
In 2015 these tools were rewritten to provide a new, easier-to-use andeasier-to-extend interface. If you’d like to browse the old toolchain, itsstatus is recorded for posterity at athttps://github.com/kivy/python-for-android/tree/old_toolchain.
In the last quarter of 2018 the python recipes were changed. Thenew recipe for python3 (3.7.1) had a new build system which wasapplied to the ancient python recipe, allowing us to bump the python2version number to 2.7.15. This change unified the build process forboth python recipes, and probably solved various issues detected over theyears. It should also be mentioned that these unified python recipesrequire a minimum target api level of 21,Android 5.0 – Lollipop, so in the case that you need to build targeting anapi level below 21, you should use an older version of python-for-android(<=0.7.1).
Be aware that this project is in constant development so, as per time of writing,you should use a minimum on Android’s NDK r19, and
we recommend using NDK r19b.This is because the toolchains installed bydefault with the NDK can be used in-place and the python-for-android projecthas been adapted for that feature. Also be aware that more recent versions of theAndroid’s NDK may not work.
Those mentioned changes has been done this way to make easier the transitionbetween python3 and python2. We will slowly phase out python2 supporttowards 2020…so…if you are using python2 in your projects you shouldconsider migrating it into python3.
This project exists thanks to all the people who contribute. [Contribute].
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/kivy#backer)]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/kivy#sponsor)]
To restore the repository download the bundle
git clone kivy-python-for-android_-_2019-11-25_07-16-56.bundle