从安卓java替代JNI调用本机函数
这可能是一个真正的新手问题,但我正在编写一个需要使用。所以用C++编写的库。这个因此,由几个类组成,并且是在通用C++中,而不是JNI。p>
有没有办法从Android java应用程序调用C++函数,除了JNI?我所看到的关于JNI的一切都表明,您必须将本机代码重写为特定于JNI的代码,如果只给您一个。所以
在Android 4.0.3中,有哪些替代方法可以从java应用程序调用本机函数?写一个调用C++函数的小JN-C++程序有多简单,然后可以从java调用?p>
Eclipse中是否有任何东西可以简化该过程
没有比这更优雅的解决方案,我可能不应该感到惊讶
# 1 楼答案
这不是特定于Android的,但是您应该看看Java Native Access(JNA)。它允许您使用libffi(不使用JNI)访问本机代码
# 2 楼答案
我认为没有比您建议的为库编写JNI包装器更优雅的解决方案了。无论如何,这可能不是一个好主意,因为您应该为要支持的每个体系结构编译所有本机代码的单独版本。仅仅附加到一个编译过的库就意味着你被它的架构束缚住了