深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
来源:互联网 发布:安卓播客软件 编辑:程序博客网 时间:2024/06/06 12:25
一、Dalvik介绍
Dalvik VM是Android平台的核心组成部分之一,它的名字来源于冰岛一个名为Dalvik的小渔村。Dalvik VM并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能直接执行Java的Class文件,使用的是寄存器架构而不是JVM中常见的栈架构。但是它与Java又有着千丝万缕的联系,它执行的dex(Dalvik Executable)文件可以通过Class文件转化而来,使用Java语法编写应用程序,可以直接使用大部分的Java API等。
2014年6月25日,Android L 正式亮相于召开的谷歌I/O大会,Android L 改动幅度较大,谷歌将直接删除Dalvik,代替它的是传闻已久的ART。
二、ART介绍
在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效,但让应用安装比较快,而且更容易在不同硬件和架构上运行。
ART完全改变了这种做法,在应用安装时就预编译字节码到机器语言,在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。
三、Dalvik与JVM的区别
1、Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于编译后变大的程序来说,在它们执行的时候,花费的时间更短。
2、Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex
四、Dalvik与ART的区别
1、ART与Dalvik最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。
2、ART占用空间比Dalvik大(字节码变为机器码之后,可能会增加10%-20%),这就是“时间换空间大法”。
3、预编译也可以明显改善电池续航,因为应用程序每次运行时不用重复编译了,从而减少了 CPU 的使用频率,降低了能耗。
转自:http://blog.csdn.net/SilenceOO/article/details/77875732
- 深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
- 深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
- 深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
- Dalvik VM (DVM) 和Java VM (JVM)之间的区别
- Dalvik VM (DVM) 和Java VM (JVM)之间的区别
- JVM、Dalvik VM和ART虚拟机之间的区别
- JVM、Dalvik VM和ART虚拟机之间的区别
- JVM、DVM(Dalvik VM)和ART虚拟机对比
- Dalvik VM (DVM) 与Java VM (JVM)之间的区别
- Dalvik虚拟机(DVM)和JVM的对比
- DVM和JVM(Dalvik VM和Java VM)的区别
- JVM、Dalvik及ART虚拟机的区别
- Android虚拟机DVM和JAVA虚拟机JVM的区别总结
- Dalvik vm (DVM)与java vm (JVM)的区别。android为什么要用DVM.
- 2.JVM和DVM之间的区别
- java虚拟机和Dalvik虚拟机的区别,DVM为什么要设计成基于寄存器的!
- JVM/Dalvik和ART的区别
- JVM之Dalvik和ART的区别
- windows 7 64位系统安装mongodb步骤
- 洛谷 2668 [NOIP2015]斗地主
- 相对目录详解
- html、css学习总结
- 安卓开发-Gps定位获取位置信息
- 深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
- Android--(9)--详解网格布局(GridLayout)
- 博弈类题目小结(HDU,POJ,ZOJ)
- 【Java概念】static(12)
- DFS:POJ1562-Oil Deposits(求连通块个数)
- Handler、Looper、Message随笔
- 字节对齐实例
- C++程序的简单执行过程
- 统计相关系数(2)——Spearman Rank(斯皮尔曼等级)相关系数及MATLAB实现