1、android studio
1.在Java里面写个类,这个类跟普通的Java类一样,不过这个类的方法修饰符必须加上static
public class JNI {
static {
System.loadLibrary("hello-jni");
}
//本地方法获得字符串,本地方法由c/c++实现
public static native String helloFromC();
}
3.找到as的命令行输入javah com.example.aplex.jnidemo.JNI (com.example.aplex.jnidemo是你的包命,JNI是你的类名)。你会在app/build/intermediates/classes/debug下面发现多了一个.h文件。在app/src/main下面新建一个名为jni文件夹,然后把.h文件复制进去,创建.c文件把刚刚复制进来的.h文件的内容复制到.c文件中,并且实现里面的函数
jstring Java_com_example_aplex_jnidemo_JNI_helloFromC(JNIEnv *env, jclass obj){
char buf[] = "Hello world from C!";
//env调用struct JNINativeInterface中的函数指针
//实现转换c里面的char *字符串为java中的String对象
return (*env)->NewStringUTF(env, buf);
}
4.在gradle里面配置
defaultConfig {
applicationId "com.example.aplex.jnidemo"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
ndk{
//指定生成模块名字,也就是最终的动态库名hello-jni,相应库文件名libhello-jni.so moduleName "hello-jni"
moduleName "hello-jni"
// 指定生成哪些处理器架构的动态库文件,如果要运行在x86架构处理器一定需要指定 abiFilters "armeabi" , "x86"
abiFilters "armeabi" , "x86"
}
}
二、Eclipse
转载 http://blog.csdn.net/dengshengjin2234/article/details/10046809