GithubHelp home page GithubHelp logo

mixedcase / python-for-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kivy/python-for-android

1.0 2.0 0.0 14.6 MB

Turn your Python application into an Android APK - build your own python and extensions

Home Page: https://python-for-android.readthedocs.org

License: MIT License

Shell 1.19% Python 71.39% C 2.61% Makefile 1.51% C++ 0.03% Java 22.55% CMake 0.02% HTML 0.49% CSS 0.21%

python-for-android's Introduction

Python for Android

Python for Android is a project to create your own Python distribution including the modules you want, and create an apk including python, libs, and your application.

These tools were recently rewritten to provide a new, easier to use and extend interface. If you are looking for the old toolchain with distribute.sh and build.py, it is still available at https://github.com/kivy/python-for-android/tree/old_toolchain, and issues and PRs relating to this branch are still accepted. However, the new toolchain contains all the same functionality via the built in pygame bootstrap.

For documentation and support, see:

Broad goals of the revamp project include:

  • ✓ Replace the old toolchain with a more extensible pythonic one
  • ✓ Support SDL2
  • ✓ Support multiple bootstraps (user-chosen java + NDK code, e.g. for multiple graphics backends or non-Kivy projects)
  • ✓ Support python3 (it finally works!)
  • (WIP) Support some kind of binary distribution, including on windows (semi-implemented, just needs finishing)
  • ✓ Be a standalone Pypi module (not on pypi yet but setup.py works)
  • ✓ Support multiple architectures (full multiarch builds not complete, but arm and x86 with different config both work now)

We are currently working to stabilise all parts of the toolchain and add more features. Support for pygame-based APKs is almost feature complete with the old toolchain. Testing and contributions are welcome.

The recent replacement of the master branch with the revamp will have rendered most/all PRs invalid. Please retarget revamp PRs on the master branch, or PRs for the old toolchain on the old_toolchain branch.

Documentation

Follow the quickstart instructions to install and begin creating APK.

Quick instructions to start would be:

pip install git+https://github.com/kivy/python-for-android.git

The executable is called python-for-android or p4a (both are equivalent). To test that the installation worked, try

python-for-android recipes

This should return a list of recipes available to be built.

To build any distributions, you need to set up the Android SDK and NDK as described in the documentation linked above.

If you did this, to build an APK with SDL2 you can try e.g.

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

For full instructions and parameter options, see the documentation linked above.

Known missing stuff from P4A

Relating to all bootstraps:

  • Some recipes/components aren't stripped properly of doc etc.
  • Downloaded file md5 and headers aren't checked

Relating to SDL2 only:

  • Public dir installation
  • Keyboard height getter
  • Billing support
  • Kivy Launcher build (can now be implemented as a bootstrap...maybe?)
  • Probably some other stuff

Here are some specific things relating to changes in p4a itself since the reference commit that the revamp is based on:

Current status

python-for-android is fully ready for use. We are working towards a versioned release.

Development notes

Original reference commit of p4a master was 7c8d4ce9db384528f7ea83e0841fe2464a558db8 - possibly some things after this need adding to the new toolchain. Some of the major later additons, including ctypes in the python build, have already been merged here.

Support

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

We also have an IRC channel:

  • Server : irc.freenode.net
  • Port : 6667, 6697 (SSL only)
  • Channel : #kivy

Contributing

We love pull requests and discussing novel ideas. Check out our contribution guide and feel free to improve Python for Android.

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

IRC channel:

  • Server : irc.freenode.net
  • Port : 6667, 6697 (SSL only)
  • Channel : #kivy-dev

License

Python for Android is released under the terms of the MIT License. Please refer to the LICENSE file.

python-for-android's People

Contributors

akshayaurora avatar alanjds avatar b3b avatar bertonha avatar bob-the-hamster avatar brousch avatar brussee avatar cbenhagen avatar clayote avatar denys-duchier avatar dessant avatar dl1ksv avatar hottwaj avatar ibobalo avatar inclement avatar jasonxunxu avatar kived avatar knappador avatar legikaloz avatar lfdversluis avatar mathewvermeer avatar mmariani avatar nklever avatar olymk2 avatar roger avatar str4d avatar thopiekar avatar tito avatar torfinnberset avatar tshirtman avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.