Python与Dalvik或AAF之间的本土桥梁

时间:2013-11-18 10:44:09

标签: android python java-native-interface dalvik python-cffi

是否有任何项目将Python和Dalvik连接在同一地址空间?

用一种语言创建的对象可以在另一种语言中注册为侦听器,反之亦然?

-

Python可以是CPython或PyPy;

Dalvik可能是完整的Android应用程序框架,或者只有Dalvik虚拟机,或者在最坏的情况下,甚至可能是非Dalvik JVM;

Bridge可以用Python / cffi,Python / jni,本机C / C ++代码甚至java编写。

据我所知,脚本环境不能满足我的需求。

如果完全缺乏Python - Dalvik桥,我将采用全功能的基于C / C ++的C / C ++ - Dalvik桥作为最后的手段作为有效的答案。然后,需要一个示例来实例化C / C ++中的on对象,该对象可以在运行时作为有效的侦听器提交给某些Android API,包括安全性考虑。

2 个答案:

答案 0 :(得分:3)

(根据我原来的评论)

您知道pyjnius吗?它被(例如)kivy python-for-android项目用于与java类交互,包括管理诸如意图监听之类的东西。如果这在技术上不合适,我很抱歉,我对这个领域知之甚少。

作为次要参考,listener example在Python中实现一个intent listener接口,并使用pyjnius将其注册到Android运行时。

超级简单的例子,调用java。

>>> from jnius import autoclass
>>> autoclass('java.lang.System').out.println('Hello world')
Hello world

答案 1 :(得分:2)

实际上在python中有一个名为android的模块。它可以在Android系统上做很多事情。您可以在此处下载:https://pypi.python.org/pypi/python-android

还有一个python / java桥也支持Dalvik处理。您可以在这里获得该软件: https://bitbucket.org/reasonspace/reasonspace/src

这两者都应该提供一种接口python和Android系统的好方法。如果你想要你也可能让他们既读取和写入文件来发送消息或创建某种类似的通信方式,但上述项目是更好的方法。