JNI用android?

时间:2011-05-18 09:36:05

标签: android c++ eclipse java-native-interface android-ndk

嘿伙计们! 我最近一直在研究c ++应用程序,它必须在Android 2.1和2.2上运行。 所以我想知道我是否有完整的c ++应用程序我可以把它放入* .so文件然后创建android项目,只需使用System.loadLibrary(blalba.so)加载这个库; 会有用吗?

1 个答案:

答案 0 :(得分:1)

是的,您必须重新编译专门针对Android的所有本机库。是的,您确实需要您计划使用的所有第三方本机库的源代码,因为通常当我们在Android之外编译和链接这些库时,它们链接到glibc但不幸的是Android由于liscence和性能问题而不使用glibc。 Android使用名为 libc 的glibc的淡化版本。对于大多数常用功能,它与glibc具有匹配的符号名称。但据我所知,libc没有一些与Strings相关的功能,它肯定没有一些posix支持。如果您的本机库使用任何已弃用的功能,则必须通过使用libc支持的替代功能并相应地编写lib来为这些功能找到解决方法。

另外,正如你指出的那样,你将不得不使用NDK将Java(Android app / fwk)与原生世界(C ++)连接起来。

虽然这听起来很简单,但根据我的经验,在Android上编译本机库(Android移植)传统上非常耗费时间并且不能保证过度使用。