Android的新虚拟ART与原虚拟机DVM的区别
2016-12-23 12:01
225 查看
Android在4.2之前的虚拟机叫做
DVM
在4.2的时候多了一个虚拟机选择,这是新的虚拟机 ART。Android Runingtime
那时ART还不够成熟,需要测试,所以默认虚拟机是DVM。国内的ROM厂商直接把ART给割了。
Android5.0起,默认使用ART虚拟机,删掉了DVM。
两者的功能是一样的,都是将.class文件转为机器码执行程序。
区别之处在于: 将.class文件转为机器码的时候。
DVM 实时
每次运行应用的时候,实时将字节码转化为机器码,再运行程序。中间多了一道转换手续,使得程序响应需要更多的时间,因为实时,消耗了更多的电量,内存。(这就是相同配置的手机Android不如Apple流畅的原因。)
ART 安装时
在安装应用的时候,就将应用的字节码转换为机器码,保存在手机里。每次运行应用的时候,无需实时转换,直接使用转换好的机器码。打开应用更快,应用响应更及时,内存占用,电量消耗都减少。(拉近了与Apple的流畅距离)
缺点:同一款应用安装后比DVM占更多的空间,多出的空间用来保存机器码了,安装时间也更长点。一个应用里代码的大小是很小的,大都是资源素材大,因而多出的空间是很小的,现在手机都是16G+,不影响使用。
DVM
在4.2的时候多了一个虚拟机选择,这是新的虚拟机 ART。Android Runingtime
那时ART还不够成熟,需要测试,所以默认虚拟机是DVM。国内的ROM厂商直接把ART给割了。
Android5.0起,默认使用ART虚拟机,删掉了DVM。
两者的功能是一样的,都是将.class文件转为机器码执行程序。
区别之处在于: 将.class文件转为机器码的时候。
DVM 实时
每次运行应用的时候,实时将字节码转化为机器码,再运行程序。中间多了一道转换手续,使得程序响应需要更多的时间,因为实时,消耗了更多的电量,内存。(这就是相同配置的手机Android不如Apple流畅的原因。)
ART 安装时
在安装应用的时候,就将应用的字节码转换为机器码,保存在手机里。每次运行应用的时候,无需实时转换,直接使用转换好的机器码。打开应用更快,应用响应更及时,内存占用,电量消耗都减少。(拉近了与Apple的流畅距离)
缺点:同一款应用安装后比DVM占更多的空间,多出的空间用来保存机器码了,安装时间也更长点。一个应用里代码的大小是很小的,大都是资源素材大,因而多出的空间是很小的,现在手机都是16G+,不影响使用。
相关文章推荐
- 3.Android的新虚拟ART与原虚拟机DVM的区别[误删恢复]
- Android虚拟机DVM和JAVA虚拟机JVM的区别总结
- Android培训班(77)Dalvik虚拟机的dvmInterpretStd函数
- Android学习札记25:对Android虚拟机(DVM)内存分配的一些理解
- Android虚拟机(DVM)内存分配——内存溢出问题
- android 58 jvm和dvm的区别(Dalvil VM)
- (Android)java虚拟机和Dalvik虚拟机的区别 .
- Android培训班(77)Dalvik虚拟机的dvmInterpretStd函数
- Android——区别DVM与JVM (2)
- Android开发_Android的Dalvik虚拟机和标准Java虚拟机的区别
- Android软件安全与逆向分析——dalvik虚拟机与Java虚拟机的区别(带实例)
- android虚拟机(Dalvik)和标准Java虚拟机(JVM)的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- android虚拟机和java虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- android开发的Dalvik虚拟机和JVM虚拟机的区别
- Android虚拟机(DVM)内存分配——内存溢出问题
- Android虚拟机(DVM)内存分配——内存溢出问题
- java虚拟机和Dalvik虚拟机的区别,DVM为什么要设计成基于寄存器的!
- Android Dalvik虚拟机简述(与Java虚拟机的区别和简要的执行原理)