本文讲述使用Android Studio进行NDK开发的基本步骤,实现从native层获取字符串并显示到TextView上。
1.编写类加载
public class JniUtils {
static {
System.loadLibrary("testlib");
}
public static native String getString();
}
2.点击Build ->Rebuild Project,然后打开Terminal窗口,进入\app\src\main\java 目录下,使用下面命令生成.h头文件。
javah -d ../jni 包名+类名(JniUtils)
javah -d ../jni com.tingw.jnidemo11.JniUtils
3.在jni文件夹下新建一个c\c++文件,编写C代码。
#include "com_tingw_jnidemo11_JniUtils.h"
//从生成的.h头文件中将方法复制过来,添加返回值。
JNIEXPORT jstring JNICALL Java_com_tingw_jnidemo11_JniUtils_getString
(JNIEnv *env, jobject obj)
{
return (*env)->NewStringUTF(env,"Hello World JNI");
}
4.在gradle.properties添加以下代码,声明使用NDK。
android.useDeprecatedNdk=true
5.在app的build.gradle中,声明.so文件的名称。
defaultConfig {
applicationId "com.tingw.jnidemo11"
minSdkVersion 21
targetSdkVersion 24
versionCode 1
versionName "1.0"
ndk {
//名字必须和System.loadLibrary("testlib")的名字一致。
moduleName = "testlib"
}
}
6.在Activity中设置调用返回string值。
textqqq = (TextView) findViewById(R.id.textqqq);
textqqq.setText(JniUtils.getString());
7.点击运行,效果如下图。