繁体   English   中英

JNI与android吗?

[英]JNI with android?

大家好! 我最近一直在研究必须在Android 2.1和2.2上运行的c ++应用程序。 所以我想知道我是否有完整的c ++应用程序,可以将其放入* .so文件中,然后创建android项目,并仅使用System.loadLibrary(blalba.so)加载此库。 能行吗?

是的,您将必须重新编译所有专门用于Android的本机库。 是的,您确实需要计划使用的所有第3方本机库的源代码,这仅仅是因为通常当我们在Android外部编译并链接这些库时,它们会链接到glibc,但不幸的是,由于许可和性能问题,Android不使用glibc。 Android使用称为libc的glibc精简版本。 对于大多数常用功能,它具有与glibc匹配的符号名称。 但是据我所知,libc没有与字符串相关的某些功能,并且绝对没有posix支持。 如果您的本机库正在使用任何不推荐使用的功能,则必须使用libc支持的替代功能并相应地对您的库进行编码,以找到针对这些库的解决方法。

另外,正如您正确指出的那样,您将必须使用NDK将Java(Android app / fwk)与本机世界(C ++)接口。

尽管按照我的经验听起来很简单,但在Android上编译本机库(Android porting)传统上非常耗时,而且无法保证成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM