Dalvik虚拟机&ART虚拟机

·Dalvik虚拟机和Java虚拟机的区别

1 Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。

传统的Java程序经过编译,生成Java字节码保存在class文件中,Java虚拟机通过解码class文件中的内容来运行程序。而Dalvik虚拟机运行的是Dalvik字节码,所有的Dalvik字节码由Java字节码转换而来,并被打包到一个DEX可执行文件中。Dalvik虚拟机通过解释DEX文件来执行这些字节码。

2 Dalvik可执行文件体积小。Android SDK中由一个叫dx的工具负责将Java字节码转换成Dalvik字节码。

dx工具对Java类文件重新排列,消除在类文件中出现的所有冗余信息,避免虚拟机在初始化时出现反复的文件加载与解析过程。

3 Java虚拟机与Dalvik虚拟机架构不同,这也是Dalvik与JVM之间最大的区别

Java虚拟机基于栈架构,程序在运行时虚拟机需要频繁的从栈上读取或写入数据,这个过程需要更多的指令分派与内存访问次数,会消耗不少CPU时间。Dalvik虚拟机基于寄存器架构,数据的访问通过寄存器间直接传递,这样的访问方式比基于栈要快很多。

·Dalvik虚拟机的结构

 

一个应用首先经过DX工具将class文件转换成Dalvik虚拟机可以执行的dex文件,然后由类加载器加载原生类和Java类,接着解释器根据指令集对Dalvik字节码进行解释、执行。

·什么是ART虚拟机

ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个JIT编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和框架上运行。ART则是在应用安装时就预编译字节码到机器语言,效率更高,启动更快。

ART优点:

1 系统性能的显著提升

2 应用启动更快、运行更快、体验更流畅、触感反馈更及时

3 更长的电池续航能力

4 支持更低的硬件

ART缺点:

1 更大的存储空间占用

2 更长的应用安装时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值