今天偶然在网上看到一个思维导图,关于JNI的调用以及基本概念的,觉得非常形象,就拿来用一下:
基本概念:
1、JNI即Java Native Interface
2、JNI是JAVA平台的一部分,通过JNI可以实现与其它语言(主要是C和C++)进行交流
3、JNI是完善JAVA功能的一个重要功能,一方面JVM封装了各种操作系统的差异性,使用JAVA可以跨平台运行,另一方面JNI提供了JAVA程序与操作系统相关功能函数交互的接口,不失JAVA功能的全面性。
应用场景:
1、在程序对时间敏感或对性能要求特别高,有必要使用更底层的语言
2、在已经有现成的,用其它语言已经完成的功能时,需要JAVA去直接调用
3、在需要用到JAVA标准平台不具备的依赖于操作系统的特性时。
使用步骤:
1、在JAVA类中声明Native方法
2、用javah程序,将1中的class文件生成头文件,命令:javah -jni XXX
3、用其它语言实现上述头文件中的函数,生成动态库,用JAVA程序使用
4、发布JAVA程序和动态库