JNI是什么
定义:Java Native Interface
,即Java
本地接口
作用:使得Java
与本地其他语言(如C
,C++
)进行交互,可以让Java
代码和C
,C++
代码进行互相调用。
JNI
是Java
语言的一种特性,属于Java
,与Android
没有关系。
* NDK是什么
定义:Native Development Kit
,是本地开发的工具包
作用:Android
本地开发工具集合,快速开发C
,C++
的动态库,可以自动将so
库和应用一起打包成APK
。
NDK
是专门为Android
开发的一个本地开发工具,是Android
实现JNI
的一种手段。
实例开发
NDK在Android Studio中的配置
1、AS
中添加NDK
开发包SDK
2、 local.properties
中添加配置
配置ndk
的路径
ndk.dir=D\:\\Android\\Android_SDK_windows\\platforms\\ndk-bundle
3、gradle.properties
中配置
对过期NDK
做支持,这里是有个时间限制
android.deprecatedNdkCompileLease=1550631386689
4、build.gradle
里配置生成so
库的名字
ndk {
//生成的so库名字
moduleName "helloJni"
}
Android声明Native方法
1、新建Java
测试类,声明Native
方法
2、静态代码块中 加载so
库
3、进入JniTest.class
同级文件夹下,打开命令行工具,通过命令生成.h
的文件
javah -classpath . -jni com.ho.testjni.JniTest
4、java
同级目录下新建jni
目录,在文件目录下新建 C
文件,并且把 .h
文件移入到jni
目录下。
5、点击 Build
- Make Project
生成不同平台下的so
库,生成的名字是gradle
里面配置
5、MainActivity
调用C
端 Native
方法
总结
本章介绍了Android
中NDK
的使用过程,通过Java
语言调用C
语言实现了Java
中的JNI
。后续文章将介绍 C
端调用Java
代码的相关内容