笔记 JNI和NDK

185 阅读1分钟

Java JNI的本意是Java Native Interface(Java本地接口),它是为了方便Java调用C、C++等本地代码所封装的一层接口。

NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便地通过JNI来访问本地代码,比如C或者C++。

可以参考以下文章www.jianshu.com/p/8adf85732…

具体来说有以下几步

  • 下载ndk,配置环境变量
    下载
    配置环境变量时要注意的是配置用户自己的变量,不是系统的变量

环境变量

  • 跟着下面链接或者自己找的文章配置好File->Setting->External tool上面三个javah 、ndk-build、ndk-build clean这三个命令blog.csdn.net/chuhongcai/…
  • 新建jni文件夹,在里面新建java类并声明本地方法,再新建Android.mk文件,新建Application.mk文件,新建.cpp文件,在app下面build.gradle文件指定so包的路径,其中ndk闭包要在defaultconfig里面
android{
……
ndk{
            moduleName "MyLibrary"
        }
        sourceSets.main{
            jni.srcDirs = []
            jniLibs.srcDir "src/main/libs"
        }
}
  • 执行javah命令生成.h文件,执行ndk-build生产so库
    编译
  • 最后在程序中调用so库的本地方法