JNI简介

什么是JNI

JNI(java native interface)java本地开发接口,本质上是一种协议,相当于桥梁的作用,通过jni就可以调用C/C++代码,当然也可以用C调用java的代码。

为什么要调用JNI

  • 通过jni技术,可以扩展android手机的功能,比如wifi热点比如NFC技术。
  • native coder执行高效,很明显c语言比java语言更节省内存:比如需要大量运算的游戏(极品飞车等等),万能的解码器,播放器,比如ffmpeg,OpenGl的3D渲染。
  • 代码的复用,有些很完善的工具库是用c写的,比如openCV,7-zip等。
  • 某些特殊的是用场景,比如车载软件系统。

怎么用JNI

  • 看懂c语言的代码
  • 使用android ndk

JNI与NDK的区别和联系

JNI是Java调用Native机制,是Java语言自己的特性全称为Java Native Interface,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.NET可以调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用,如果运行在Windows平台使用JNI是是经常的,比如说读写Windows的注册表。 而NDK是Google公司推出的帮助Android开发者通过C/C++本地语言编写应用的开发包,包含了C/C++的头文件、库文件、说明文档和示例代码,我们可以理解为Windows Platform SDK一样,是纯C/C++编写的,但是Android并不支持纯C/C++编写的应用,同时NDK提供的库和函数功能很有限,仅仅处理些算法效率敏感的问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏夏时

分享几个IP获取地理位置的API接口

2.4K5
来自专栏web前端教室

本周末的QQ群视频--还是电商网站的事

主要讲了如何开发“点击某商品,进入商品详情页”。 产品列表页,就是这个电商网站的首页,也是一般多数电商网站的首页,在首页上尽量多的把商品展示出来。 一般来讲,它...

1795
来自专栏王鹤的专栏

Vue.js前后端同构方案之准备篇:代码优化

目前Vue.js的火爆不亚于当初的React,本人对写代码有洁癖,代码也是艺术。此篇是准备篇,工欲善其事,必先利其器。我们先在代码层面进行优化,对我们完成整个技...

3.4K1
来自专栏互联网杂技

前端工作面试经典问题(超级全)

本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能...

3538
来自专栏张徐辰的专栏

十个书写Node.js REST API的最佳实践(上)

我们会通过本文介绍下书写Node.js REST API的最佳实践,包括各个主题,像是命名路由、认证、黑盒测试以及对相关资源使用合适的缓存头。

7930
来自专栏数据小魔方

Python网络数据抓取实战——Xpath解析豆瓣书评

前两篇我详细的讲解了CSS和XPath表达式在网页解析中的用法,但是都是以列举和解释为主,并没有用于解决实战问题,今天这一篇,我使用urllib+lxml工具组...

4206
来自专栏达摩兵的技术空间

“不吹不黑”说一说列表页多“简单”

相信随着前端职业的兴起,有不少后端或者项目经理觉得前端不就那么回事么?甚至于有些时候,后端一看这么个简单的东西也要做一天?那么本文就带大家了解一下一个还算正常的...

532
来自专栏Jerry的SAP技术分享

CRM WebUI and Hybris的Product页面标题实现

Controller只需实现IF_BSP_WD_HISTORY_STATE_DESCR~GET_STATE_DESCRIPTION方法:

3664
来自专栏互联网杂技

干货:前端开发指南Front-End-Develop-Guide

这份文件包含一系列用于面试审查求职者(候选人)的前端面试问题。这并不推荐把每个问题都问在同一个求职者(因为这会花几个小时的时间)。从列表中抽取一些问题能够帮助你...

3406
来自专栏前端小吉米

无 Flash 时代,让直播拥抱 H5(完整篇)

1964

扫码关注云+社区