Android Dalvik虚拟机和ART虚拟机对比

原文:https://blog.csdn.net/k1457047898/article/details/53471951

Android Dalvik虚拟机和ART虚拟机对比

概述

Android4.4以上开始使用ART虚拟机,在此之前我们一直使用的Dalvik虚拟机,那么为什么Google突然换了Android运行的虚拟机呢?答案只有一个:ART虚拟机更优秀。

Dalvik vs ART

  • Dalvik
    Android4.4及以前使用的都是Dalvik虚拟机,我们知道Apk在打包的过程中会先将java等源码通过javac编译成.class文件,但是我们的Dalvik虚拟机只会执行.dex文件,这个时候dx会将.class文件转换成Dalvik虚拟机执行的.dex文件。Dalvik虚拟机在启动的时候会先将.dex文件转换成快速运行的机器码,又因为65535这个问题,导致我们在应用冷启动的时候有一个合包的过程,最后导致的一个结果就是我们的app启动慢,这就是Dalvik虚拟机的JIT特性(Just In Time)。
  • ART
    ART虚拟机是在Android5.0才开始使用的Android虚拟机,ART虚拟机必须要兼容Dalvik虚拟机的特性,但是ART有一个很好的特性AOT(ahead of time),这个特性就是我们在安装APK的时候就将dex直接处理成可直接供ART虚拟机使用的机器码,ART虚拟机将.dex文件转换成可直接运行的.oat文件,ART虚拟机天生支持多dex,所以也不会有一个合包的过程,所以ART虚拟机会很大的提升APP冷启动速度。

总结

  • ART优点:

    1. 加快APP冷启动速度
    2. 提升GC速度
    3. 提供功能全面的Debug特性
  • ART缺点:

    1. APP安装速度慢,因为在APK安装的时候要生成可运行.oat文件
    2. APK占用空间大,因为在APK安装的时候要生成可运行.oat文件

猜你喜欢

转载自blog.csdn.net/wjw_java/article/details/81186553