Android(java)学习笔记255:JNI之JNI概念

时间:2023-01-05 23:48:44

1. JNI是什么?

java native interface (java本机接口)

比如方法声明:

public final native Class<?>  getClass();   (来自源码Object.java)

上面方法没有方法体,但是它不是抽象方法,它是具体方法,因为它加了native修饰了,说明这个方法是使用底层C实现的。

java提供JNI这个接口规范,可以去调用其他程序语言编写的功能模块(不必要利用java重新开发),可以调用C/C++,或者VB等等。

Android(java)学习笔记255:JNI之JNI概念

2.  为什么要使用JNI?

(1)需求(钱)

(2)高性能(C/C++实现效率高

(3)物联网建设

(4)C开源组件(C开源组件很丰富,使用JNI调用这些C开源组件)

3. 怎么学JNI?

(1)java基础

Android(java)学习笔记255:JNI之JNI概念

Linux系统由于开源性,性能非常完善稳定,而且针对的病毒也很少,所以Linux系统常用作服务器系统(看中Linux的安全,稳定)

(2)C语言基础

(3)JNI角色

JNI是一种协议规范(和JVM类似,JNI也是翻译官的角色),把C代码通过JNI协议规范,把它翻译成相应的java代码,逻辑图如下:

Android(java)学习笔记255:JNI之JNI概念