Java本地接口(JNI)

本文详细介绍了Java本地接口JNI,包括其概述、数据类型转换、JNI/NDK开发流程及JNI中的引用管理。JNI允许Java代码调用C/C++函数,反之亦然。在Android中,JNI常用于实现特定的底层功能,如MediaScanner的多媒体文件扫描。开发流程包括在Java中声明native方法、生成JNI头文件、实现C/C++方法和编译生成so库。此外,文章还讲解了JNI中局部引用、全局引用和弱全局引用的区别和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客地址:https://security.blog.youkuaiyun.com/article/details/82916828

一、JNI概述

JNI的本意是Java Native Interface(Java本地接口),是为了方便Java和C/C++等本地代码所封装的一层接口,使用JNI技术可以对Java层屏蔽不同操作系统平台之间的差异,从而实现Java本身的平台无关特性。JNI和Android是没有关系的。通过JNI可以做到以下两点:

1、Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++写的函数。
2、Native程序中的函数可以调用Java层的函数,即C/C++程序中可以调用Java的函数。

以MediaScanner为例:

MediaScanner完成android中的多媒体文件的扫描工作。得到如歌曲专辑名,流派,歌曲时长等信息,并将它们存储在媒体数据库中,供其它应用程序使用。

在这里插入图片描述

1、Java世界对应的是MediaScanner,而这个MediaScanner类有一些函数需要由Na

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武天旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值