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+,不影响使用。