JNI挂接第三方so库(androidstudio)
最近在做一个项目,需要挂接其它部门提供的so库,android纯小白,在网上找了一堆资料,走了很多弯路终于初步挂接成功,整个流程给大家分享一下
基本工具
androidstudio,google官方提供的开发工具,迭代了很多版本了,确实有很多弊端,但是开发用起来的确顺手许多。
基本基础
由于挂接的so库是c++编译的,需要c++基础,JNI的基本知识也要懂些,不懂的童鞋可以去查其他资料,不需要学多深,jni的内存机制、类型转换学懂了就差不多了。
第一步 建立项目
在androidstudio里建立一个Native C++项目,没错,androidstudio自带示例。
第二步 编写CMkelist
androidstudio的目录结构这里就不多讲了,打开main-cpp目录下一个叫CMakelist的文件,androidstduio将所有的负责操作流程都浓缩在这个txt文件里面了,没多少复杂的工作,只要按照固定的格式填写,androidstudio就会自动执行命令,生成so文件链接动态静态库。
add_library( # Sets the name of the library.
native-lib
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
native-lib.cpp )
这是你自己生成的so库,这里没什么可以修改的地方,native-lib.cpp是你自己编译的cpp文件,涉及到第三方库的调用都在这里面,这也是为什么android编程需要c&#