android studio 3.2—NDK配置
之前写了一篇Android studio 2.0 的配置,现在写一下3.2的配置
1.配置ndk
ndk 默认是下载sdk目录文件夹下的配置如图:
2.首先新建引用原生的java 类
public class JniTest {
public static native int getAdd(int a, int b);
}
3.生成头文件(.h文件)
配置的好sdk环境变量可以直接在Terminal中执行一下代码
javah -d ../jni 包名.类名
我这里是---》javah -d ../jni com.dascom.testjindemo.JniTest
成功之后会出现 jni 的文件夹,如图:
头文件的内容:
4.新建.c或者.cpp文件,方法内容和头文件一致:
5.新建Android.mk和Application.mk文件
Android.mk
其中:
LOCAL_MODULE —生成动态库的名字
LOCAL_SRC_FILES—关联jni文件夹下的.c或者.cpp 的文件名字,多个文件用“\”分开
Application.mk文件:
现在jni目录下全文件如图:
6.在build.gradle中添加
android{ ...
sourceSets{
main{
jni.srcDirs=[] //不使用gradle编译本地c/c++代码
jniLibs.srcDirs = ['libs','src/main/libs']//加载so库 lib是第三方so src/main/libs是准备生成的so库位置
}
}
}
以及 在gradle.properties文件中,没有就新建一个,添加android.useDeprecatedNdk=true
7.在Terminal(定位到main 层级)执行ndk-build(注:-前后没有空格)
之后会生成:
8.在TestJni.java中添加:
static {
System.loadLibrary("MyJni");
}
public static native int getAdd(int a, int b);
MyJni这个必须和Android.mk中的名字一致
之后在页面引用:
TestJni.getAdd(2,3)可以得到结果
如果想生成jar可以参考:
Android Studio 手把手教你NDK打包SO库文件,并提供对应API 使用它(赋demo)