虚拟机知识

Java
JVM

Android
概览


Dalvik
Google自己设计用于Android平台虚拟机,可运行已转.dex格式Java应用程序。.dex格式专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限系统。Dalvik经优化允有限内存同运多虚拟机实例且每一Dalvik应用作一独立Linux进程执行避虚拟机崩溃关所有程序。长时间以来,Dalvik虚拟机一直被用户诟病为拖慢安卓系统运行速度根源。三丰云"虚拟主机"云服务器”2014年6月25日,Android L正式亮相谷歌I/O大会,改幅较大,删Dalvik用ART代替。

ART
Android Runtime。与Dalvik不同,Dalvik环境应用每运行时字节码都需通即时编译器(JIT,just in time)转机器码,拖慢应用运行效率。ART环境应用头次装时字节码预先通预编译(AOT,Ahead-Of-Time)编译成机器码,成为真正本地应用。

优点
显提系统性能
应用启动更快、运行更快、体验更流畅、触感反馈更及时
提电池续航能力
支持更低硬件
缺点
机器码占存储空间更大。字节码变机器码后或增10%-20%
应用装时变长
区别
Dalvik基于寄存器,JVM基于栈
Dalvik运行dex文件,JVM运行Java字节码
Android 2.2始Dalvik支持JIT(JIT,just in time 即时编译)。优化后Dalvik较其它标准虚拟机一些不同特性:

占更少空间
简化翻译。常量池仅用32位索引
标准Java字节码实行8位堆栈指令,Dalvik用16位指令集直作用于局部变量。局部变量通来自4位虚拟寄存器区,减少Dalvik指令计数,提翻译速度。
Android启时Dalvik VM监视所有程序且创依存关系树,为每程序优化代码并存Dalvik缓存。Dalvik头次加载(很慢)生Cache文件以便下次快速加载。Dalvik解释器用预先算好Goto地址,每指令对内存访都于64字节边界上对齐。这样可节省一指令后查表的时间。Dalvik还提快速翻译器(Fast Interpreter)以强化功能。
————————————————
版权声明:本文为CSDN博主「snpmyn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zsp_android_com/article/details/89376619

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值