嘿家伙! 我一直致力于最近在Android 2.1和2.2上运行的C++应用程序。 所以我想知道如果我有完整的C++应用程序,我可以把它放入* .so文件,然后创建android项目,只需使用System.loadLibrary(blalba.so)加载这个库; 它会工作吗?JNI与android?
1
A
回答
1
是的,你将不得不重新编译专门为Android的所有本地库。是的,您确实需要所有您计划使用的第三方本机库的源代码,因为通常当我们在Android之外编译和链接这些库时,它们与glibc链接,但不幸的是Android由于显示和性能问题而不使用glibc。 Android使用glibc的淡化版本,称为libc。对于大多数常用功能,它具有与glibc匹配的符号名称。但据我所知,libc没有与Strings相关的一些功能,它绝对没有一些posix支持。如果您的本机库正在使用任何已弃用的功能,则必须通过使用libc支持的其他功能并相应地编码您的库来为这些功能找到解决方法。
另外,正如你指出的那样,你将不得不使用NDK将Java(Android app/fwk)连接到本地(C++)。
虽然这听起来很简单,但根据我的经验,编译Android上的本机库(Android移植)传统上非常耗时且不保证成功。
相关问题
- 1. Android Studio中JNI与C++ UnsatisfiedLinkError
- 2. Android Webview JNI错误与loadUrl
- 3. 将Android(Java)与JNI链接到铬(cpp)
- 4. 在JNI使用jlongArray与Android NDK
- 5. JNI和Android ... UnsatisfiedLinkError
- 6. android JNI ERROR
- 7. FFMpeg jni在Android?
- 8. Android Cocos2dX JNI Bridge
- 9. Android - JNI准则
- 10. 使用android JNI
- 11. Android JNI GDB
- 12. Android的JNI java.lang.UnsatisfiedLinkError
- 13. Android NDK java.lang.UnsatisfiedLinkError JNI
- 14. JNI与openmp
- 15. Robolectric 2与JNI
- 16. Android - JNI - 通过JNI恢复MyException成员
- 17. Android jni GetMethID崩溃
- 18. CallIntMethod result -1 - ANDROID JNI
- 19. Android上的“UnsatisfiedLinkError”JNI
- 20. Android JNI APK包装
- 21. Android SSL JNI结构?
- 22. Jni教程为Android
- 23. Android和Java的JNI
- 24. Android的JNI电话
- 25. OpenCV Mat处理Android JNI
- 26. 的Android ClassLoader.loadClass JNI崩溃
- 27. HELLO-JNI的Android工作室
- 28. Android JNI:获取父类
- 29. Android和JNI实时时钟
- 30. Android中的计时器JNI
非常感谢评论,这真的很有帮助。顺便说一句,是否有一些特定的Android编码,特别是2.1和2.2,或者它可能只是普通的C++和Java代码? – 2011-05-18 13:56:30
@ user747228:Android有一个3层架构,其中最低层是本地(C/C++),Jni层(称为App Fwk)位于顶层,基于Java的应用位于App Fwk之上。 C,C++代码与Android libc链接,因此它必须符合它(我记得的不同的细节在回答)。关于App Fwk和App,他们使用由Android SDK公开的功能,这或多或少是Java的核心,但Android拒绝说Java。 – 2011-05-18 15:59:52
@ user747228:如果您确实找到有用的答案和评论,请不要忘记将它们标记为已接受的答案:) – 2011-05-18 16:01:57