JNI——《深入理解(I)》学习笔记2

JNI(Java Native Interface),通过这种技术可以做到两点:

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

2)Native程序中的函数可以调用Java层的函数(C/C++程序可以调用Java的函数)

 

有了JNI技术,可以对Java层屏蔽不同操作系统平台之间的差异(如Windows和Linux),但是Java的运行速度不及Native。

JNI层以动态库的形式实现,这样Java 虚拟机会在调用JNI的函数前进行加载。

 

 

 

实例分析:MediaScanner

(MediaScanner是Android平台中多媒体系统的重要组成部分,其功能是扫描媒体文件,得到如歌曲时长、歌曲作者等媒体信息,并将它们存入到媒体数据库中,供其他应用程序使用)

 重点:

1)先加载对应的JNI库:在调用相关native函数前,动态加载对应的JNI库。调用System.loadLibrary("media_jni");其中media_jni是动态库的名字,系统会自动根据不同的平台拓展成真是的动态库文件名,在Linux上拓展成libmedia_jni.so,在Windows上拓展成media_jni.dll。

2)声明由关键字native修饰的函数:用关键字native来声明native_init和processFile函数,表示这两个函数将由JNI层来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值