这可能是一个真正的新手问题,但我正在编写一个需要使用用C ++编写的.so库的Android应用程序。 .so由几个类组成,并且是通用的C ++,而不是JNI。
除了JNI之外,有没有办法从Android Java应用程序调用C ++函数?我所看到的关于JNI的一切都表明你必须将本机代码重写为JNI特定的,如果你只给了一个.so,那真是太不方便了。
从Android 4.0.3中的Java应用程序调用本机函数有哪些替代方法?编写一个调用C ++函数的小型JNI-C ++程序是多么简单,然后可以从Java调用?
Eclipse中是否有任何可以简化流程的内容?
我可能不应该对没有更优雅的解决方案感到惊讶。
答案 0 :(得分:0)
我不相信有一个更优雅的解决方案,而不是你为库编写JNI包装器的建议。无论如何,这可能不是一个好主意,因为您应该为要支持的每个体系结构编译所有本机代码的单独版本。只需附加到已编译的库中,就意味着您会被它的架构所困扰。
答案 1 :(得分:0)
这不是特定于Android的,但您应该查看Java Native Access(JNA)。它允许您使用libffi访问本机代码(不使用JNI)。