1、新建项目,如图所示

Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置

2、配置NDK开发环境

点击左上角的SDK Manager,下载ndk工具。
Android Studio下的NDK开发(一):环境配置
Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置


Android Studio下的NDK开发(一):环境配置


下载完成后在gradle.properties中添加如下一行代码



android.useDeprecatedNdk=true







在build.gradle中添加如下一段代码,意思是生成的.so库名为JniTest.so


ndk{
    moduleName "JniTest"
}






Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置

Android Studio下的NDK开发(一):环境配置

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库文件的

Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置

再在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
Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置
Android Studio下的NDK开发(一):环境配置

5、生成库文件

点击Build->Rebuild生成.so文件,在如下目录
Android Studio下的NDK开发(一):环境配置Android Studio下的NDK开发(一):环境配置

复制 粘贴到jniLibs文件夹中
Android Studio下的NDK开发(一):环境配置

6、在MainActivity中调用

Android Studio下的NDK开发(一):环境配置

运行结果如下
Android Studio下的NDK开发(一):环境配置

7、源码链接

https://github.com/Hasagit/JniDemo.git

相关文章: