站内搜索

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

首页 人人文库网 > 资源分类 > DOC文档下载

23JNI与Android VM之关系.doc

  • 资源星级:
  • 资源大小:63.00KB   全文页数:5页
  • 资源格式: DOC        下载权限:游客/注册会员/VIP会员    下载费用:3
游客快捷下载 游客一键下载
会员登录下载
下载资源需要3

邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。

支付方式: 微信支付       支付宝      
验证码:   换一换

友情提示
2:本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3:本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

23JNI与Android VM之关系.doc

23JNI与ANDROIDVM之关系1从如何载入SO档案谈起由于ANDROID的应用层级类别都是以JAVA撰写的,这些JAVA类别转译为DEX型式的BYTECODE之后,必须仰赖DALVIK虚拟机器VMVIRTUALMACHINE来执行之。VM在ANDROID平台里,扮演很重要的角色。此外,在执行JAVA类别的过程中,如果JAVA类别需要与C组件沟通时,VM就会去加载C组件,然后让JAVA的函数顺利地呼叫到C组件的函数。此时,VM扮演着桥梁的角色,让JAVA与C组件能透过标准的JNI接口而相互沟通。应用层级的JAVA类别是在虚拟机器VMVITUALMACHINE上执行的,而C组件不是在VM上执行,那么JAVA程序又如何要求VM去加载LOAD所指定的C组件呢可使用下述指令SYSTEMLOADLIBRARYSO的檔名;例如,在上一节的范例里的NATIVEJNIADDER类别,其程序代码看看ANDROID框架里所提供的MEDIAPLAYERJAVA类别,内含指令PUBLICCLASSMEDIAPLAYER{STATIC{SYSTEMLOADLIBRARYMEDIA_JNI;}}这要求VM去加载ANDROID的/SYSTEM/LIB/LIBMEDIA_JNISO档案。载入SO档之后,JAVA类别与SO档就汇合起来,一起执行了。2如何撰写SO的入口函数JNI_ONLOAD与JNI_ONUNLOAD函数之用途当VM执行到SYSTEMLOADLIBRARY函数时,首先会去执行C组件里的JNI_ONLOAD函数。它的用途有二1告诉VM此C组件使用那一个JNI版本。如果你的SO文件没有提供JNI_ONLOAD函数,VM会默认该SO檔是使用最老的JNI11版本。由于新版的JNI做了许多扩充,如果需要使用JNI的新版功能,例如JNI14的JAVANIOBYTEBUFFER,就必须藉由JNI_ONLOAD函数来告知VM。2由于VM执行到SYSTEMLOADLIBRARY函数时,就会立即先呼叫JNI_ONLOAD,所以C组件的开发者可以藉由JNI_ONLOAD来进行C组件内的初期值之设定INITIALIZATION。例如,在ANDROID的/SYSTEM/LIB/LIBMEDIA_JNISO档案里,就提供了JNI_ONLOAD函数,其程序代码片段为//DEFINELOG_NDEBUG0DEF

注意事项

本文(23JNI与Android VM之关系.doc)为本站会员(baixue100)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(发送邮件至[email protected]或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

网站客服QQ:2846424093    人人文库上传用户QQ群:460291265   

[email protected] 2016-2018  renrendoc.com 网站版权所有   南天在线技术支持

经营许可证编号:苏ICP备12009002号-5