准备工作:NKD环境搭建
- 使用Android studio 打开Project structure,在设置页面找到SDK location,可以设置NDK的路径,如果目前还没有NDK开发包,studio会提示你下载,下载完成后设置路径即可
- 检查local.properties文件里面有没有NDK路径:
开始创建JNI接口
- 新建一个类myJNI,然后添加JNI接口定义,如下所示,
public static native String sayHello();
JNI接口需要用native关键字修饰,我们会看到方法名报红,没关系,我们继续,图片中的方法名未报红是因为我们已经编译生成了.so文件。
2. build一下工程,检查myJNI.java编译后有没有生成class文件,在这个位置下:
app\build\intermediates\classes\debug\com\study\view\studytest\myJNI.class
3. 使用javah生成.h头文件,具体如下:
打开Terminal,输入命令进入到debug目录下,命令如下:
cd app/build/intermediates/classes/debug
然后使用javah+包名+文件路径来生成头文件,命令如下:
javah com.study.view.studytest.myJNI
然后我们会发现在app\build\intermediates\classes\debug\com\study\view\studytes目录下会有一个.h的文件生成
4. 有个.h头文件后,我们去实现.h文件里的方法,我们在main下新建一个jni文件夹,如图:
把生成的.h文件拷贝到jni文件夹下,在jni文件夹下,新建一个.c(c语言)或者.cpp(c++)的文件,来实现.h文件里声明