第一次写博客,就是想做一些笔记,以防忘记,有什么不对的地方希望指正。
1、创建项目 MyFirstNdkDemo,在main目录下新建jni文件夹
2、在gradle.properties文件中添加
android.useDeprecatedNdk=true
3、在app module目录下的build.gradle中设置库文件名(生成的so文件名)。找到gradle文件的defaultConfig这项,在里面添加红色内容:
defaultConfig { applicationId "com.shan.myfirstndkdemo" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk{ moduleName "firstNdk"//设置生成so的名字 abiFilters "armeabi", "armeabi-v7a", "x86" } }
4、新建NdkUtils类,添加代码如下 public static native String getNdkString();
5、进入windows控制台切换到这个目录D:\AndroidStudioProject\MyFirstNdkDemo\app\build\intermediates\classes\debug
在控制台中输入javah -jni com.shan.myfirstndkdemo.NdkUtils,按enter后在debug目录下生成.h文件,剪切.h文件到jni文件夹中,并在该文件夹中新建一个.c文件,内容如下
#include "com_shan_myfirstndkdemo_NdkUtils.h" JNIEXPORT jstring JNICALL Java_com_shan_myfirstndkdemo_NdkUtils_getNdkString (JNIEnv *env, jclass jclass){ return (*env)->NewStringUTF(env,"Hello Ndk"); }
6、在java文件中实现如下代码
7、大功告成static { System.loadLibrary("firstNdk"); }
textView.setText(NdkUtils.getNdkString());