1、新建项目,如图所示
2、配置NDK开发环境
点击左上角的SDK Manager,下载ndk工具。
下载完成后在gradle.properties中添加如下一行代码
android.useDeprecatedNdk=true
在build.gradle中添加如下一段代码,意思是生成的.so库名为JniTest.so
ndk{
moduleName "JniTest"
}
3、在java目录下新建JniUntil类,内容如下
public class JniUntil {
public native String getString();
static {
System.loadLibrary("JniTest");//加载.so库
}
}
4、把工程视图切换成project,在main目录下新建文件夹jni和jniLibs,jni是用来存放C/C++文件的,而jniLibs则是用来存放.so库文件的
再在jni文件下新建JniTest.c和JniTest.h文件,内容如下 JniTest.c
#include "JniTest.h"
JNIEXPORT jstring JNICALL Java_com_jnitest_JniUntil_getString
(JNIEnv *env, jobject obj){
return (*env)->NewStringUTF(env,"努力学习,天天向上");
}
JniTest.h
#ifndef JNITEST_JNITEST_H
#define JNITEST_JNITEST_H
#endif
#include <jni.h>
#ifndef _Included_com_jnidemo_JniUntil
#define _Included_com_jnidemo_JniUntil
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL Java_com_jnidemo_JniUntil_getString
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
5、生成库文件
点击Build->Rebuild生成.so文件,在如下目录
复制 粘贴到jniLibs文件夹中
6、在MainActivity中调用
运行结果如下
7、源码链接
https://github.com/Hasagit/JniDemo.git