本文主要讲述android如何在jni中调用第三方共享so
项目源码地址:https://github.com/chenjim/thirdPartyJniSo
本博客地址:http://blog.csdn.net/csqingchen/article/details/51548839
android studio 中如何使用,参见本项目thirdPartyJniSoAS目录的studio工程

如何使用

  1. 生成第三方共享.so库
    命令行切换到thirdPartyJniSo/prebuild/目录下
    执行ndk-build,会在当前目录生成共享库文件libs/armeabi-v7a/libadd_test.so
  2. 生成HelloJni.java需要的.so库
    复制以上生成的.so到thirdPartyJniSo/jni下,命令行切换到该目录,
    执行ndk-build
  3. eclipse导入工程,导入时不需要勾选thirdPartyJniSoAS,运行…
  4. hello-jni.c中对共享库中函数add_fun的调用,可以将返回结果在其中进一步封装,返回给HelloJni.java使用。

注意问题

  1. gcc 生成的共享动态库,android无法使用,必须用ndk编译生成的.so,否则提示”.so: File format not recognized”。
  2. 项目中两处Application.mk 中APP_ABI的配置必须相同,否则提示”.so: File format not recognized”。
  3. 最终调用的libhello-jni.so也是动态共享库,为啥不直接用步骤1生成的动态库的libadd_test.so?是因为HelloJni.java不识别非ndk标准的动态库格式。

参考文章:
http://blog.csdn.net/educast/article/details/12773127/
http://tools.android.com/tech-docs/new-build-system/gradle-experimental
https://github.com/googlesamples/android-ndk/tree/master/hello-libs

更多相关文章

  1. android 上调试动态库方法
  2. 一步一步学习androidNDK编程(java给c传递数据)
  3. Android(安卓)NDK入门之Hello Jni
  4. android 上调试动态库方法
  5. Android(安卓)应用程序之间数据共享—ContentProvider
  6. 2011.09.21——— android 动态壁纸开发
  7. 在android studio 2.1 实现简单的ndk
  8. 2011.09.21——— android 动态壁纸开发
  9. android下不规则多边形填充位图

随机推荐

  1. 百度地图android开发资料
  2. Android 通过按键旋转屏幕
  3. 2011.07.19——— android intent 传递li
  4. 高德地图自定义点聚合样式Android
  5. android 实现模拟按键
  6. Android Visualizer
  7. 关于Android启动页全屏的解决方案
  8. Android bootanimation 制作过程
  9. Android学习之Service(下)
  10. Android smali语法