Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Native bridge between Python and Dalvik or AAF

Is there any project that bridges Python and Dalvik in same address space?

That is an object created in one language can be registered as a listener in the other and vice versa?

--

Python could be CPython or PyPy;

Dalvik could be full Android Application Framework, or only Dalvik virtual machine, or in the worst case, could even be a non-Dalvik JVM;

Bridge could be written in Python/cffi, Python/jni, native C/C++ code, or even java.

Scripting environment, as far as I understand, doesn't do what I want.

In case of a total lack of Python--Dalvik bridge, I'll take full-featured C/C++-based C/C++--Dalvik bridge as a valid answer as a last resort. Then an example is required on instantiating a on object in C/C++ land that can be submitted as a valid listener to some Android API at runtime, including security considerations.

like image 314
Dima Tisnek Avatar asked Nov 18 '13 10:11

Dima Tisnek


2 Answers

(As per my original comment)

Are you aware of pyjnius? It is used by (for instance) the kivy python-for-android project to interact with java classes, including managing stuff like intent listening. I apologise if this is technically unsuitable, I don't know enough about this area.

As a minor reference, listener example implementing an intent listener interface in Python and registering it with Android runtime using pyjnius.

Super-simple example, calling into java.

>>> from jnius import autoclass
>>> autoclass('java.lang.System').out.println('Hello world')
Hello world
like image 99
inclement Avatar answered Oct 06 '22 15:10

inclement


There is in fact a module called android in python. It can do quite a lot on an android system. You can download it here: https://pypi.python.org/pypi/python-android

There is also a python/java bridge that also supports Dalvik handling. Here is where you can get the software: https://bitbucket.org/reasonspace/reasonspace/src

Both of these should supply a good way to interface python and Android systems. If you wanted you could also probably get them both to read and write files to send messages or create some kind of similar way to communicate, but the above projects are better ways to do it.

like image 30
trevorKirkby Avatar answered Oct 06 '22 14:10

trevorKirkby