Android笔记之使用CMake进行JNI开发 第三方So库的引入

1.导入so文件

将so文件拷贝到项目中,路径自己定吧,只要配置的时候不出错就行,我是这样的拷贝到jniLibs文件夹中的。jniLibs下的子文件夹表示的是cpu类型,你可以少建些,但不可以不建,so文件就放在这些文件夹下,每个cpu类型都放。 一般放入app/libs/目录下arm64-v8a、armeabi-v7a、x86、x86_64 ABI架构。build/gradle app 引入

sourceSets {

main {

jni.srcDirs = []

jniLibs.srcDirs = ['libs']

}

}

引入的项目包名必须与.so库实现方法的包名一致。

比如我的so文件中实现了“Java_com_example_win7_jnitest_util_JniUtil_stringFromSelf”方法,

“com_example_win7_jnitest_util”表示的是包名,

“JniUtil”表示的是方法所在类,“stringFromSelf”表示的是方法名。


因此,我在“com.example.win7.jnitest.util”包下新建了JniUtil类来声名方法

(注:so文件实现了哪些方法可以在.h头文件中看到)

JniUtil.java:

public class JniUtil {static {        System.loadLibrary("test-lib");    }public static native StringstringFromSelf(String str); //这里虽然是红字,但可以跑起来}

// Example of a call to a native method TextView tv = (TextView) findViewById(R.id.sample_text); tv.setText(JniUtil.stringFromSelf("jack"));

你可能感兴趣的:(Android笔记之使用CMake进行JNI开发 第三方So库的引入)