答案 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移植)传统上非常耗费时间并且不能保证过度使用。