【发布时间】:2023-03-25 19:55:01
【问题描述】:
是否有任何项目可以在同一地址空间中桥接 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,包括安全考虑。
【问题讨论】:
-
“我会像 JNI 一样采用全功能的基于 C/C++ 的 C/C++--Dalvik 桥接器”? :)
-
澄清,这是最后的手段。
-
你知道pyjnius吗?它被(例如)kivy python-for-android 项目用于与 java 类交互,包括管理诸如意图监听之类的东西。如果这在技术上不合适,我深表歉意,我对此领域了解不够。
-
@inclement 我去看看!
-
@inclement 这真的很好!使用
ctypes,因此只能与CPython一起使用,而不能与PyPy一起有效地工作,但它显然是朝着正确方向的预测!请转换成答案。
标签: android python java-native-interface dalvik python-cffi