1,android 进行ndk开发
点击打开链接这是我开发ndk时,从作者哪里引用的,实现了ndk的开发
遇到问题时的参考链接http://blog.csdn.net/penglijiang/article/details/70757342
2,idea 进行ndk
参考链接 https://www.jianshu.com/p/44cbe11e5d35
2.1 安装MinGW,目的就是安装gcc
2.2 新建java文件
public class HelloJNI {
static {
// hello.dll (Windows) or libhello.so (Unixes)
System.loadLibrary("hello");
}
private native void sayHello();
public static void main(String[] args) {
new HelloJNI().sayHello();
}
}
2.3 生成JNI头文件
很多人都使用javah 生成头文件,自己尝试过很多次,每次都失败,于是自己照葫芦画瓢,自己修改里面的类 的包名,完美完成该工作
2.3.1 新建jni文件夹,新建.h 和.c文件
首先是列出这个长串的.h文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
#ifndef _Included_com.imooc.demo.tran.HelloJNI
#define _Included_com.imooc.demo.tran.HelloJNI
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_com_imooc_demo_tran_HelloJNI_sayHello
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
然后写那个.c的文件
#include <jni.h>
#include <stdio.h>
#include "com.imooc.demo.tran.HelloJNI.h"
JNIEXPORT void JNICALL Java_com_imooc_demo_tran_HelloJNI_sayHello
(JNIEnv * env, jobject jobject1){
printf("helloworld");
return ;
}
2.4 使用GCC对HelloJNI.c编译
gcc -c -I"C:\Program Files\Java\jdk1.8.0_111\include" -I"C:\Program Files\Java\jdk1.8.0_111\include\win32" jni/HelloJNI.c
执行该命令后,就会在根目录下,生成.o文件
gcc -Wl,--add-stdcall-alias -shared -o hello.dll HelloJNI.o
执行该命令后,即可生成.dll文件
2.5 运行HelloJNI.java类,即可得到结果