開發環境 android studio
目標:開發一個ndk的hello world
1、環境準備:
下載android ndk並解壓
2、創建android項目 NDKTest01
新建java類JNIUnit
增加方法
public class JNIUnit { public static native String getStringFormC(); }Clear Project
Rebuild Project
3、生成頭文件
cd app/build/intermediates/classes/debug/
javah -jni com.nndou.yy.ndktest01.JNIUnit
生成文件 com_nndou_yy_ndktest02_JNIUnit.h
在src下創建文件夾 jni
拷貝 com_nndou_yy_ndktest02_JNIUnit.h 文件到jin目錄下
4、增加 test.c文件,內容爲:
#include "com_nndou_yy_ndktest02_JNIUnit.h" JNIEXPORT jstring JNICALL Java_com_nndou_yy_ndktest01_JNIUnit_getStringFormC(JNIEnv *env, jobject obj) { return (*env)->NewStringUTF(env,"這裏是來自c的string"); }5、配置文件修改
在 file ->project structure 中增加 ndk的路徑
或者在local.properties 中增加ndk路徑
在 gradle.preperties 中增加
android.useDeprecatedNdk=true
修改build.gradle
在 defaultConfig 節增加如下配置
ndk {
moduleName "NdkJniDemo" //生成的so名字 abiFilters "armeabi", "armeabi-v7a", "x86" }
6、在JNIUtile類中增加so引用
static { System.loadLibrary("NdkJniDemo"); }
重新編譯項目,如果沒有問題,就可以在代碼中調用 JNIUtile.getStringFromC()方法。