首先,这是讲的jni的运行原理,没有代码哦。代码好写,原理难懂,对于不懂原理寸步难行的我来说,一定要知其然也要知其所以然。
然后,不多说,进入正题。
因为最近在研究jni技术,一直没搞明白这个jni与Java的虚拟机之间到底有没有关系,运行原理是什么?与Java层进行通讯的原理是什么?查了一上午,终于知道是个什么东东了.先看下定义(这也是大部分网站都能搜到的定义,比较官方哈)。
JNI
JNI(Java Native Interface)是Java SDK 1.1时正式推出的,目的是为不同JVM实现间提供一个标准接口,从而使Java应用可以使用本地二进制共享库,扩充了原有JVM的能力,同时Java程序仍然无需再次编译就可以运行在其他平台上,即保持了平台独立性又能使用平台相关的本地共享库提升性能。
Java虚拟机
Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
在Java开发中的位置如图,