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