1.在androidstudio中配置ndk的路径:


2.点击androidStudio file-->setting-->Tools--->External Tools,然后点击右边窗口的+号

再点击+号:

点击ok后,再点击+号

配置完成后,新建项目,新建类负责加载so库:
public class MyNdk {
static{
System.loadLibrary("MyLibrary");//库名为MyLibrary.so
}
public native String getKey();//本地方法为getKey()
}
然后在该类上右键

生成.h文件后,在main右键新建aidl folder

将生成的.h文件拷到jni目录下,
在build.gradle文件中配置jni的相关配置:
defaultConfig{
applicationId"xx.xx.xx"
minSdkVersion9
targetSdkVersion25
versionCode1
versionName"1.0"
testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
ndk{
moduleName"MyLibrary"
}
}
sourceSets{
main{
jni.srcDirs= []
jniLibs.srcDir"src/main/libs"
}
}
在jni目录下添加Android.mk文件和Application.mk文件
Android.mk文件的内容为:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MyLibrary
LOCAL_SRC_FILES =: MyLibrary.c
include $(BUILD_SHARED_LIBRARY)
Application.mk文件的内容为:

在jni目录下新建MyLibrary.c文件
#include"包名_MyNdk.h"
#include
JNIEXPORT jstring JNICALL Java_包名_MyNdk_getKey
(JNIEnv *env, jobject obj){
return(*env)->NewStringUTF(env,"aaaa bbbb cccc string");
}
然后在c文件上右键

在gradle.properties文件中添加:android.useDeprecatedNdk=true
如果没有这个文件,则在根目录中创建此文件
这样就生成so文件了
这样就可以调用文章开头写的MyNdk类的getKey方法了。
网友评论