Android4.4版本以前是Dalvik虚拟机,4.4版本开始引入ART虚拟机(Android Runtime)。在4.4版本上,两种运行时环境共存,可以相互切换,但是在5.0版本以后,Dalvik虚拟机则被彻底的丢弃,全部采用ART。
总之,一句话总结就是:采用ART预先加载代替用时查找以提升应用的性能。
ART
ART 是一种执行效率更高且更省电的运行机制,执行的是本地机器码,这些本地机器码是从dex字节码转换而来。ART采用的是AOT(Ahead-Of-Time)编译,应用在第一次安装的时候,字节码就会预先编译成机器码存储在本地。在App运行时,ART模式就较Dalvik模式少了解释字节码的过程,所以App的运行效率会有所提高,占用内存也会相应减少。谷哥在5.0以后的Android版本中默认了ART模式启动,就是希望Android能摆脱卡顿这个毛病。

Dalvik
Dalvik 虚拟机采用的是JIT(Just-In-Time)编译模式,意思为即时编译,我们知道apk被安装到手机中时,对应目录会有dex或odex和apk文件,apk文件存储的是资源文件,而dex或odex(经过优化后的dex文件内部存储class文件)内部存储class文件,每次运行app时虚拟机会将dex文件解释翻译成机器码,这样才算是本地可执行代码,之后被系统运行。
Dalvik虚拟机可以看做是一个J
Android从4.4开始引入ART虚拟机,替代了Dalvik。ART采用AOT编译,预编译为机器码,提高运行效率和电池续航,但占用空间增大。相比之下,Dalvik使用JIT编译,运行时编译成机器码,效率较低但安装包小。5.0后,ART成为默认选项。
订阅专栏 解锁全文
1777

被折叠的 条评论
为什么被折叠?



