Android系统是以Linux系统为底层构建的,开源的Android系统需要配置到不同硬件配置的设备上,为了降低应用的开发难度,在Linux底层之上构筑了一个名为"Dalvik"的虚拟机,名为虚拟机,实际是一种应用编译模式,Android4.4开始引入的ART模式是一种全新的应用编译模式,Android5.0彻底从Dalvik转换到ART。
Dalvik模式:
Dalvik是Google公司自己设计用于Android平台的Java虚拟机,Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一,它可以支持已转换为.dex格式的java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。每一个Dalvik应用作为一个独立的Linux进程执行,在有限的内存中允许同时运行多个虚拟机的实例。独立的进程可以防止在虚拟机崩溃时所有程序都被关闭。
因为Dalvik虚拟机,Android开发者只需按照谷歌提供的SDK即可轻松创建APP,不需要顾忌硬件、底层驱动等问题,在每次执行应用时,Dalvik虚拟机都会将程序的语言由高级语言编译为机器语言,Dalvik依靠一个Just-In-Time(JIT)编译器去解释字节码,每次运行程序都需要做上述操作,将字节码编译为机器语言;所以很长时间以来,Dalvik虚拟机一直被用户指责为拖慢安卓系统运行速度不如IOS的根源。
ART模式:
ART模式的完整名称是Android Runtime,谷歌收购了一家名为Flexycore的公司,该公司一直致力于Android系统的优化,ART模式也是在该公司的优化方案上演进而来。
启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样运行程序时就不会每次都进行一次编译了,将提高执行效率。
区别:
编译模式 | RAM内存 | ROM内存 | 流畅度 | 省电 | 兼容性 | 加载速度 |
Dalvik | 大 | 小 | 普通 | 普通 | 好 | 慢 |
ART | 小 | 大 | 好 | 好 | 有待优化 | 快 |