JNI(Java Native Interface,Java本地接口),用于打通Java层与Native(C/C++)层。这不是Android系统所独有的,而是Java所有。众所周知,Java语言是跨平台的语言,而这跨平台的背后都是依靠Java虚拟机,虚拟机采用C/C++编写,适配各个系统,通过JNI为上层Java提供各种服务,保证跨平台性。
jni,实现java和c的相互调用。
java调用C,首先在java中定义native类型的函数,然后使用javah工具生成.h头文件,该文件中会生成C对应的函数包括参数类型,然后在该文件中添加具体的函数实现,并生成动态库,然后在java中调用system.Loadlibrary即可调用native函数。
C调用java很少,但作为一种设计上的灵活性,android提供该方法,但是C调用java必须是基于java有调用C的前提下,拿到对应的参数才可以实现。