第一章、生成JNI的.h文件
1、新建android工程HelloNDK,新建包com.hteng.ndk.hello,在包下编写HelloManager.java类,定义本地getHelloString()方法;
public native String getHelloString();
2、 将HelloManager.java类拷到E盘根目录,打开cmd命令行窗口,切换到E盘根目录,指令一生成class文件,指令二生成C语言JNI的.h文件;
E:\>java com.hteng.ndk.hello.HelloManager
E:\>javah com.hteng.ndk.hello.HelloManager
第二章、实现头文件相关业务逻辑
1、在HelloNDK的main目录底下新建jni文件夹,拷贝com_hteng_ndk_hello_HelloManager.h到该目录;
2、在jni新建Hello.c文件,内容如下:
#include<studio.h>
#include<stdlib.h>
#include<jni.h>
#include"com_hteng_ndk_hello_HelloManager.h"
JNIEXPORT jstring JNICALL Java_com_hteng_ndk_hello_HelloManager_getHelloString
(JNIEnv * env, jobject clazz){
return (*env)->NewStringUTF(env,"hello NDK");
}
第三章、配置NDK参数
1、修改build.gradle文件,新增NDK配置内容
applyplugin:'com.android.application'
android {
compileSdkVersion15
buildToolsVersion"23.0.3"
defaultConfig {
applicationId"com.hteng.ndk.hello"
minSdkVersion15
targetSdkVersion19
versionCode1
versionName"1.0"
ndk {
moduleName"hello-world"
}
}
buildTypes {
release {
minifyEnabledfalse
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir:'libs')
testCompile'junit:junit:4.12'
}
2、修改gradle.properties文件,新增NDK配置
android.useDeprecatedNdk=true
3、修改local.properties文件,增加NDK路径配置
ndk.dir=E\:\\android-soft\\android-ndk-r10e
第四章、调用NDK方法
1、载入so库文件
static {
System.loadLibrary("hello-world");
}
2、调用so库文件native方法
HelloManager.getInstance().getHelloString()