博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Dalvik虚拟机和ART虚拟机对比
阅读量:6117 次
发布时间:2019-06-21

本文共 755 字,大约阅读时间需要 2 分钟。

hot3.png

概述

Android4.4以上开始使用ART虚拟机,在此之前我们一直使用的Dalvik虚拟机,那么为什么Google突然换了运行的虚拟机呢?答案只有一个: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文件

转载于:https://my.oschina.net/carbenson/blog/1142703

你可能感兴趣的文章
IP分为五类
查看>>
centos 安装 ntpdate 并同步时间
查看>>
validate插件深入学习-04自定义验证方法
查看>>
redis 集群搭建 以及 报错解决
查看>>
工作中遇到的问题,虽然很白痴但是你可能也会遇到-2016-10-24
查看>>
centos 安装gitlab
查看>>
MySQL新建函数或过程 出现错误1418 的原因分析及解决方法
查看>>
AES高级加密标准简析
查看>>
Android ProgressBar实现加载进度条
查看>>
Idea查看并过滤某个接口或者类的实现
查看>>
ElasticSearch6.1.1集群搭建
查看>>
CSS3背景图片
查看>>
转:最近5年133个Java面试问题列表
查看>>
java unicode转中文
查看>>
App开发环境_Eclipse_20160927
查看>>
Jquery+Ajax+Json示例
查看>>
Django之前端插件定制之表头
查看>>
t60替换alt,super,ctrl
查看>>
利用maven install jar到项目当中
查看>>
SQL-Oracle内实现柱形图式的效果
查看>>