前面几天我大概了解了一下C语言的一些语法基础,这只是C中皮毛中的九牛一毛了。了解了这些,也只是为了便于我们在JNI的学习运用中的理解罢了。
JNI是什么:一开始我们说过其实就是java和C之间交互的语法规则。
一、初识JNI
在认识JNI之前,我们先来了解一下NDK,我们知道JDK、SDK。跟SDK差不多,NDK:本地开发工具集,也是给Android开发用的一种工具,不同的是,NDK是用C语言开发的,SDK是用java语言开发的。因为C是可以直接跟硬件交互的,所以我们一般用NDK给手机开发驱动或者一些底层应用。NDK提供交叉编译,可以使在windows环境下编译的二进制文件在ios平台、linux平台、Andorid平台都能运行。(NDK是一种绿色工具,解压即可安装,但是需要配置环境变量)
也就是说,NDK提供了一系列工具,一些开发库等,JNI是C与java交互使用的一种规则。
我们知道,Andorid手机有CPU,CPU又支持arm、mips、x86三种架构平台,在android-ndk-r9b-windows-x86\android-ndk-r9b\platforms\android-19文件夹下我们可以看到三种架构平台,然后打开某一个平台,进入usr->include文件夹,我们就可以找到,jni.h文件,该文件里定义了jni语法的头文件,大部分重定义了C与java/C++交互的数据类型、java和C互调的很多方法,结构体等很多方法。