AndroidStudio版本2021.1.1
一、AndroidStudio将C/C++库打包成so库过程
-
AndroidStudio新建NativeC++工程;
- 在Tools->SDK Manager里下载好NDK,CMake
-
在cpp文件夹下放置需被打包的C/C++源码:如图,inc里放置头文件,src里放置.c/.cpp文件。.c/.cpp里注意
修改引用路径
。
#include “…/inc/Buffer_Data_M.h”
#include “…/inc/Buffer_TCC_State_Change.h”
-
CMakeLists里添加所有C/C++代码和
native-lib.cpp.
- 新建类fafb,在类中声明需要调用的方法。本步涉及类型转换(C/C++ ->JNI -> Java)
- 在native-lib.cpp里实现方法从C/C++到JNI的转换
- 执行Build->Make proiect,可得到so文件
- so库生成位置如下。自此,so库打包完成
二.Android使用so库
-
将so文件放入新的工程下
sourceSets {
main {
jniLibs.srcDirs = ['libs','jniLibs']
}
}
-
在新工程,同一包名目录下新建名字相同的类,复写加载和声明函数。与一.5完全相同
3.在其他函数中调用过程:
fsfb main=new fsfb();
Log.d("test1",main.add(2,6)+"");
调用完成。
如果无需给第三方使用,只执行“一”即可实现JAVA调用C/C++源码,若C/C++源码有问题,还能自行修改再重新生成so库
版权声明:本文为qq_42688997原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。