java 通过jni 调用C语言定义的函数时 首先要生成函数原型
具体步奏1-3: NDK里面自带一些案例 可以参考
1 -----函数原型(C语言头文件):
| 是存在C/C++的头文件中。
|
| java提供了javah的工具 可以直接根据java的代码的 native 修饰声明的本地方法代码
|
| 生成 .h结尾的C语言的函数原型的头文件
|
| 函数原型的头文件里的方法 有一定的命名规则 可以根据 命名来推断 jni本地函数与那个jAVA类的方法相对应
2 ----- C语言的具体实现
| 编写C语言时 导入生成的函数原型头文件 根据函数原型的内容编写C语言的方法
|
| 为了保证jni的正常进行不要随意修改生成的函数原型文件只要修改C语言的方法即可
|
| Java 和C语言的 基本数据类型 部分有差别 如 JAVA 的String 要通过jni函数来转换成C语言的字符串
const char *str=(*env)->GetStringUTFChar(env,string,0);
3 ----- 用Visual 将C语言生成共享库 / 或者 安装NDK来生成共享库 xx-.so 文件
配置NDK开发 请参照 http://www.cnblogs.com/baronzhao/archive/2012/07/10/2585181.html
下面是一个 java 调用jni的案例 http://download.csdn.net/detail/only__one/6418687
编译生成so函数库的案例 自己可以在 ndk的代码中找到案例
在java 代码中 加载共享库 调动native 方法 实现调用C语言的方法