最近没啥事,叫同学写了个.so回顾下android jni和NDK使用方式
demo(模拟器下测试,只有x86的.so库)
1、首先,项目需要安装NDK
2、安装好后创建项目,项目的包名要和.so的包名要一致(木子是叫同学写了包名为“com.nxm.mrsa”的.so库),所以在使用前首先弄清楚.so里面的包名,
3、项目gradle.properties文件下添加(android.useDeprecatedNdk=true)支持NDK
4、然后在src/mian下创建jniLibs文件夹,把包名拷贝进去(同学只给木子弄了个x86的,所以大多真机运行不了,建议使用模拟器测试),然后把.so库放到对应的文件夹下
放在libs文件夹下也可以此时需要在app下的build.gradle文件中的buildTypes下添加如下代码:
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
5、创建使用类,用于加载库和编写需要调用的native方法(注:此类需要放在包名路径下,其它包名藐视不行)
6、重点: System.loadLibrary(“calculator”);加载库时,需要把.so名称前面的lib和.so去掉
7、然后就可以调用了
总结:只要不搞错包名和相关路径,一般都能调通