配置ndk
下载ndk并解压到一个位置,然后在AS里配置ndk路径:
- 配置properties文件
首先在local.properties文件中添加ndk路径:
ndk.dir=E\:\\android-ndk-r10
然后在gradle.properties文件末尾添加:
android.useDeprecatedNdk=true
- 创建module
选择Android Library:
- 在新建module的main/java/”你的package名字”目录下新建TestJni.java,内容如下:
public class TestJni {
public static native String getStrFromC();
}
- 在jni目录下生成.h文件
terminal下使用命令:
javah -d jni -classpath ..\..\build\intermediates\classes\debug cn.edu.bit.wenjieli.mylibrary.TestJni
- 在自己的刚才建的那个module里新建一个C++文件,用于实现本地方法
extern "C"{
JNIEXPORT jstring JNICALL Java_cn_edu_bit_wenjieli_mylibrary_TestJni_getStrFromC
(JNIEnv *env, jclass jclass){
(*env).NewStringUTF("test");
}
}
- 执行build下面的make module
然后在mylibrary\build\intermediates\ndk\debug\lib下面就可以看到生成的库了 - 编写代码调用C++库里的函数
static{
System.loadLibrary("mylibrary");
}
String str = TestJni.getStrFromC();