Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any way to call python code in android develop without installing sl4a?

Tags:

I have found some ways to using python to build android app.But all of them need to install sl4a and pythonforandroid. It is so complicated,so is there any way to package sl4a to my android app project,and once I install the apk,I needn't install sl4a any more.

like image 451
ZXF Avatar asked May 26 '16 14:05

ZXF


2 Answers

You can use Kivy at following link :

Python for Android

It will can help u have a look to the following topic :

How can I integrate a Python code in the Android Java app?

hope this help you.

like image 131
Sir1 Avatar answered Nov 02 '22 23:11

Sir1


You can do this. What it comes down to is packaging the Python interpreter (compiled by the NDK) in your app, and starting it via the standard NDK mechanisms. This is the same thing that e.g. Kivy does, but you'd be adding the code to your own app rather than (like Kivy) using a java bootstrap then letting the Python manage everything else.

One option, which has seen a little discussion/development recently, is to use python-for-android to build all the python components, then copy them into your java project (and add the code to handle it). This is possible, but not currently as easy as it could be, you'd need to look into how it works internally to get the outputs you need.

Another option that is probably easier right now if you don't need compiled code beyond python itself is to directly use the precompiled python binaries of the CrystaX NDK, in which case including the python binaries comes down to only adding them to your Android.mk. You'd still need some C and NDK code to interact with the interpreter, but the process is quite straightforward.

(SL4A has some Android build tools of its own, which you could also use for this, but I don't know what you'd need to do to integrate it as I think SL4A does extra things on top of just having the python interpreter present).

like image 36
inclement Avatar answered Nov 02 '22 23:11

inclement