开发环境 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()方法。