Search code examples
androidpythonjava-native-interfacedalvikpython-cffi

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.


Solution

  • (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