JNI全面解析(从基础入门到灵活运用)

**

1.JNI到底是什么?JNI和NDK什么区别?

**
JNI是Java Native Interface(java本地开发接口)的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++),你可以理解为一种协议,通过jni可以实现java和c的互相调用,相当于桥梁的作用。Java和Android开发者最好要了解下C语言的一些基本类型、函数、指针等。

NDK是Native Development Kit(原生开发包)的缩写,“原生”也就是二进制,Android常用的开发方式是Java封装的库,而这些库的底层实现是由C/C++实现,如媒体,图形库等。

NDK其实多了一个把.so和.apk打包的工具,而JNI开发只是把.so文件放到文件系统的特定位置。
**

2.JNI的应用场景?

**

  • 通过jni技术,可以扩展android手机的功能,比如wifi热点比如NFC技术。

  • native coder执行高效,很明显c语言比java语言更节省内存:比如需要大量运算的游戏(极品飞车等等),万能的解码器,播放器,比如ffmpeg,OpenGl的3D渲染。

  • 代码的复用,有些很完善的工具库是用c写的,比如openCV,7-zip等。

  • 其他一些特殊的应用场景,比如车载软件系统。

**

3.如何配置使用JNI(AndroidStudio详细配置过程)

**
1.配置NDK,很简单
下载NDK,完成后在你的sdk目录下会有一个ndk-bundle文件夹

2.配置完成后在你项目的local.properties文件中会自动生成ndk.dir
这里写图片描述
3.修改你项目的gradle.properties文件
作用是为了兼容老版本的ndk

接下来就可以写你的项目了
**

4.实例运用

**
1.在Java类中写native代码
这里写图片描述
2.在main目录下创建jni目录,写c代码 生成头文件
这里写图片描述
3.配置动态链接库的名称
写在步骤1中的JNI类中
4.加载动态链接库
rebuild一下项目
5.开始调用
这里写图片描述

至此,一个简单的调用jni的项目就已经完成了,刚入门的小伙伴们,赶紧试试吧。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值