Android 4.4 到 Android 5.0有一个很大的变化,就是从Dalvik 到 ART,以下是根据我的理解做的总结。

有不对的地方,欢迎指正。

虚拟机

Dalvik  Dalvik VM =Virtual Machine

ART = Android Runtime

运行机制

JIT(Just-in-time)的解释器动态的进行编译并执行,即每次运行都要进行编译,字节码都需要通过即时编译器转换为机器码,这一过程拖慢了运行效率。

应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为本地应用。这个过程叫做预编译(AOT, Ahead-Of-Time)。这样,应用的启动(首次)和执行都会变得更加快速。

Android 4.4 KitKat

默认,为主

引入,并存,为辅

Android 5.0 Lollipop

为辅

并存,为主

缺点

耗电快

内存大

用久了卡顿

1.   机器码占用的存储空间更大。

字节码变为机器码之后,可能会增加 10%-20%,不过在应用包中,可执行的代码常常只是一部分。ART模式安装应用所占的ROM空间比Dalvik模式多了接近一倍。 比如最新的 Google+ APK 是 28.3 MB,但是代码只有 6.9 MB。

2.  应用的安装时间会变长。

3.  兼容性差,闪退的问题

优点

1.   运行高效:根据一些基准测试,新的运行环境能够使大多数应用的执行时间减半。 CPU 消耗大、运行时间长的应用能够更加快速地完成,而一般的应用也能更加流畅,比如动画效果更顺畅,触控反馈更加即时。在多核处理器的设备上,多数情况下只需激活少量的核心,或者能够更好的利用 ARM 的 big. LITTLE 架构。

2.   占用内存小:

3.   省电:提升电池的续航能力

4.   流畅:提升系统的性能

Dalvik ART相关推荐

  1. 【Java 虚拟机原理】动态字节码技术 | Dalvik ART 虚拟机 | Android 字节码打包过程

    文章目录 一.动态字节码技术 二.Dalvik & ART 虚拟机 三.Android 字节码打包过程 总结 一.动态字节码技术 动态字节码技术 就是在 运行时 , 动态修改 Class 字节 ...

  2. Android SDK各个版本API的特性及兼容性(Dalvik/ART)

    Android最新support包v4,v7,v13,v14,v17等 - http://download.csdn.net/download/u012808234/9502763 Android A ...

  3. 移动安全--7--JVM / Dalvik / ART虚拟机

    7-1.关于Dalvik和ART虚拟机 1.Android4.4之前的Android运行时是Dalvik虚拟机.它使用即时编译. 2.Android4.4中引入了ART虚拟机,但默认的Android运 ...

  4. Dalvik/ART(ANDROID)中的多线程机制(4)

    在java中创建一个线程, new Thread对象, 并调用它的start()方法, 这是每一个java程序员都知道的事.在linux C中创建一个线程, 使用pthread_create(& ...

  5. Dalvik/ART(ANDROID)中的多线程机制(2)

    Android消息处理机制(二) 角色综述(回顾): (1)UI thread通常就是main thread,而Android启动程序时会替它建立一个MessageQueue. (2)当然需要一个Lo ...

  6. Dalvik/ART(ANDROID)中的多线程机制(3)

    封装任务 Message 在整个消息处理机制中,message又叫task,封装了任务携带的信息和处理该任务的handler.message的用法比较简单,这里不做总结了.但是有这么几点需要注意(待补 ...

  7. Dalvik/ART(ANDROID)中的多线程机制(1)

    Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制.学习Android的消息处理机制,有几个概念(类)必须了解: 1.       Message 消息 ...

  8. JAVA虚拟机、Dalvik虚拟机和ART虚拟机

    从Android5.0开始废弃了Dalvik,全面推行ART. Dalvik与ART的区别 (1)在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行 ...

  9. ART与Dalvik、JVM之间的关系你懂了吗?

    Android 高阶知识 博客系列目录 类加载机制原理解析 ART与Dalvik.JVM之间的关系你懂了吗? ART与Dalvik.JVM 认识了解虚拟机 JVM Dalvik ART 即时编译器(J ...

最新文章

  1. Sequence point 中文
  2. 文件和目录之stat、fstat和lstat函数
  3. php命名空间 动态 new,PHP命名空间(namespace)的动态访问及使用技巧_php实例
  4. DB设计原则(一)字段名定义避免二义性。
  5. CentOS上修改用户名
  6. 想做测试经理的看过来
  7. 制造领域的人工智能技术
  8. eclipse中Lombok注解无效
  9. BroadcastChannel页面间通讯
  10. 前端有未来吗?听我娓娓道来!
  11. 【报告分享】2020年618直播带货数据报告.pdf(附下载链接)
  12. 加密 web.config
  13. 计算机组成原理第五版第四章课后答案,计算机组成原理第4章习题参考答案
  14. (已更新)娱乐微信小程序源码下载-多玩法安装简单
  15. 做数据分析为何要学统计学(1)——样本分布
  16. 什么是CDN?CDN的技术原理是什么?
  17. Atom 修改Atom快捷键 实测可行
  18. 失业参加聚会_谁被邀请参加聚会?
  19. Vuepress2版本打包报错:TypeError: Invalid value used as weak map key
  20. 介绍几个农业和渔业的搜索引擎

热门文章

  1. 2022-2028年全球与中国汽车面料行业产销需求与投资预测分析
  2. 设备无法启动,代码10,如何解决
  3. NXUOJ(19计科数据结构考试)D1:干饭人
  4. unity之模糊背景(带你欣赏女人的朦胧美)
  5. class10:子路由和MVC模型
  6. ASM3142 USB 3.1控制芯片_ ASM3242 USB 3.2 2x2 控制器
  7. 老子终于理解递归了(哈哈哈哈哈哈哈哈哈哈)
  8. logo设计的核心技巧分享
  9. android相机拍照没照片,从Android相机拍摄的照片完全是黑色的
  10. iPhonexr安兔兔html5测试,iPhone XR安兔兔跑分曝光:与iPhone8Plus性能相差多少