美文网首页
Android笔记之使用CMake进行JNI开发 第三方So库的

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

作者: tommy_yong | 来源:发表于2018-05-22 17:47 被阅读0次

    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库的

          本文链接:https://www.haomeiwen.com/subject/xnrkjftx.html