Pich Blog

关注移动开发,大数据,云计算,软件架构!

1.什么是JNI

概述

JNI(Java Native Interface),java本地接口。不是Android特有的。

作用

为了方便java和c/c++代码的互相调用,所封装的一层接口。

为什么创建JNI

Java是跨平台的,与本地代码交互了不是限制了跨平台吗,那为什么还要创建JNI技术呢?其实主要是处于以下几方面考虑:

  • 实现java跨平台是通过虚拟机实现的,而虚拟机是通过native语言写的,所以虚拟机本身无法做到跨平台。然而有了JNI技术就可以对java层屏蔽不同操作系统平台之间的差异,比如:linux上打开文件是open,windows是openFile,所以说java一直在使用jni,只是我们接触的很少罢了。
  • 在java出生前,很多功能都是本地语言写的,通过jni可以重用这些代码
  • 在一些特定的场合可以提高执行效率,比如:游戏,AR,因为他们直接操作openGL肯定比java绘制效率高。

JNI和native,本地代码的关系

可以看到jni扮演者连接java和本地代码的桥梁。

Java官方说明

如果需要更深入的JNI知识可以查看JDK文档中的“Java native interface specification”

http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/jniTOC.html

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注