甚么是JNI
JavaNativeInterface(JNI)是Java平台的一种编程框架,用于在Java利用程序中调用本地代码。本地代码通常指的是C、C++或汇编程序等本地语言编写的库或系统调用。使用JNI,Java利用程序可以与本地代码进行双向通讯,使得Java利用程序可使用本地库提供的强大且高性能的功能。
为何需要JNI
Java虚拟机(JVM)的履行速度虽然比传统的本地代码慢,但由于其平台无关性、安全性和对内存及文件系统的管理等方面的优势,Java已成了许多利用程序开发的首选语言。同时,Java也是UI设计领域的一大主流,Android平台就是Java语言开发的利用非常多。但是,对某些需要高性能、实时性、或调用本地库等利用场合,Java的性能常常不能满足要求。而使用JNI可以很好地解决这些需要本地库支持的问题。
怎样使用JNI
JNI需要开发者使用JavaNativeDevelopmentKit(JDK)提供的一些工具和API来实现本地代码与Java利用程序的交互。使用JNI需要完成以下步骤:
上述步骤中最重要的是定义本地方法和实现本地方法两步。具体来讲,定义本地方法需要在Java代码中使用native关键字声明,以告知编译器该方法是一个本地方法,需要在运行时动态绑定到本地实现。将Java本地方法与本地实现进行绑定的API主要有三种类型:JNIEnv、jobject和jclass等。
JNI的优势和劣势
使用JNI进行Java与本地代码的交互具有以下优点:
但是,JNI也存在着以下缺点:
桂{哥{网{络www.gUIgeGe.cn
TOP