* Java Native Interface (Java本地接口)
* 完成两种语言之间的沟通和交流
* 让Java可以和C之间相互调用
* JNI 是一个协议,这个协议用来沟通java代码和外部的本地代码(c/c++).通过这个协议,java代码就可以调用外部的c/c++代码外部的c/c++代码也可以调用java代码
为什么要使用JNI?
* java调用底层特殊硬件(调用c语言,车载电脑,胎压监测)
* 复用已经存在的c代码, c语言发展了几十年有很多优秀的代码库 ffmpg,7zip
* 效率上c/c++语言效率更高,java要垃圾回收器回收内存(时间和内存要求严格的场景,赛车游戏转弯) 机器语言汇编 C C++ C+++(Java) C++++(C#)
* java反编译非常容易。c语言反编译不容易.关键业务逻辑需要用c实现
* 历史遗留问题,复用原来pc端的c代
怎么学习JNI?
1. 熟悉Java语言2. 熟悉C语言3. JNI的规范4. NDK (native development kits )