在使用Java开发android的过程中,由于Java无法直接操作内存,所以很多需要需要对内存的操作,就需要调用C编写的程序。就需要用到jni的方式进行操作。
jni开发是通过交叉编译来实现不同语言之间的调用。交叉编译的原理:源代码——》编译——》动态库(.dll/.so)——》目标平台运行
jni开发时,我们需要通过第三方工具,来帮助我们生成一些帮助文件。
工具:
ndk (native develop kits)工具链 一系列的工具组成,链接在一起,链式调用
cdt (c/c++ develop tools) c/c++源代码 高亮显示
cygwin windows平台下的linux系统模拟器
安装好开发工具之后,我们需要参照以下步骤来进行开发:
1.新建一个Android应用
2.选中应用右键——》Android tools——》clear Lint。。——》为.so文件起一个名称
3.把jni文件夹下的cpp文件,修改成.c的文件,然后打开Android.mk文件,将里面的cpp文件,也修改为.c文件。
4.打开Activity,新建一个native“方法”。如:public native int add(int a,int b);
5.打开libs文件夹下的c文件,先引入jni.h。方法:右键应用——》properties——》C/C++ Gennal——》Paths....——》Includes
6.将native方法添加到C文件中。格式:返回值 Java_包名_类名_方法名(JNIEnv * env,jobject jobject,其他参数)
7.在Activity中调用native方法,并传入参数。
8.运行程序。