ART和Dalvik区别

Art上应用启动快,运行快,但是耗费更多存储空间,安装时间长,总的来说ART的功效就是"空间换时间"。

ART: Ahead of Time Dalvik: Just in Time

什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一,它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

什么是ART:Android操作系统已经成熟,Google的Android团队开始将注意力转向一些底层组件,其中之一是负责应用程序运行的Dalvik运行时。Google开发者已经花了两年时间开发更快执行效率更高更省电的替代ART运行时。ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time(JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。ART则完全改变了这套做法,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

ART优点:

  1. 系统性能的显著提升
  2. 应用启动更快、运行更快、体验更流畅、触感反馈更及时
  3. 更长的电池续航能力
  4. 支持更低的硬件

ART缺点:

  1. 更大的存储空间占用,可能会增加10%-20%
  2. 更长的应用安装时间

Android系统(76)---ART和Dalvik区别相关推荐

  1. Android系统(245)---SystemServer进程的创建流程

    Android进程系列第三篇---SystemServer进程的创建流程 一.内容预览 SystemServer进程的启动.png 二.概述 前面进程系列已经更新了两篇,本文(基于Android O源 ...

  2. Android运行环境Dalvik模式和ART模式的区别对比

    Android系统是以Linux系统为底层构建的,开源的Android系统需要配置到不同硬件配置的设备上,为了降低应用的开发难度,在Linux底层之上构筑了一个名为"Dalvik" ...

  3. android五层系统架构,Android系统的五层架构、Dalvik与ART、最后有个奇怪的问题请教orz...

    Android系统的五层架构 最开始的Android系统框架分为5层(内核层.硬件抽象层.系统运行库层.应用程序框架层.应用程序层) 后来维基百科上搜索到的Android系统框架图为上图,少了一个硬件 ...

  4. Android 系统(82)---ART 和 Dalvik

    ART 和 Dalvik Android Runtime (ART) 是 Android 上的应用和部分系统服务使用的托管式运行时.ART 及其前身 Dalvik 最初是专为 Android 项目打造 ...

  5. JVM、DVM(Dalvik VM)和ART虚拟机的区别

    JVM.DVM(Dalvik VM)和ART虚拟机的区别 DVM vs JVM 1.共同点: 都是解释执行 都是每个 OS 进程运行一个 VM,并运行一个单独的程序 在较新版本中(Froyo / Su ...

  6. ART与Dalvik哪个好用 ART模式和Dalvik模式区别对比分析

    最新的安卓4.4系统中引入了全新的ART模式吗,相比之前流行已久的Dalvik模式有了很大的改变.最近看到不少安卓手机朋友在问ART与Dalvik哪个好这样的问题,因此笔者今天为大家制作了以下这张AR ...

  7. ART登场,Android要和核心虚拟机Dalvik说再见了

    Dalvik是Android的核心组成部分之一,Android上的应用程序需要依靠它才可以正常运行.现在Google准备用新的运行环境ART来替代它.在最新的Android4.4上,有两个运行环境供开 ...

  8. Android 系统(89)---ART

    配置 ART 本页面介绍了如何配置 ART 及其编译选项.讨论的主题包括:系统映像预编译配置.dex2oat 编译选项,以及如何在系统分区空间.数据分区空间和性能这三者之间取得平衡. 请参阅 ART ...

  9. (Android)java虚拟机和Dalvik虚拟机的区别

    Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...

最新文章

  1. 「工科神器」MATLAB风波未平,「化学神器」ChemOffice再爆清查国内盗版行为
  2. 对 Linux 专家非常有用的 20 个命令
  3. Vue 兼容 ie9 的全面解决方案
  4. 模型剖析 | 如何解决业务运维的四大难题?
  5. C#中的预处理指令详解
  6. 抗击肺炎,中国互联网公司在行动
  7. oracle简易数据库搭建,Oracle 10g 手工创建一个最简单的数据库
  8. 现实给了梦想多少时间?
  9. Android Studio设置自动换行快捷键
  10. 主内存和工作内存是什么?
  11. 23、使用OpenCV和NCNN进行人物抠图并将背景设置成透明色
  12. 论基础理论知识的重要性
  13. windows下,对opencv进行gcc/g++编译
  14. 宏定义和函数有何区别
  15. 手机邮箱怎么注册申请,手机邮箱在哪里找到,电子邮箱怎么弄?
  16. WinXP系统下Opencms的安装与配置
  17. excel中的链接转换为超链接
  18. 2020年中国化学发光行业发展现状、竞争格局及未来发展趋势分析,市场规模爆发式增长,成为体外诊断中的“主力军”「图」
  19. javascript面向对象(一):object基础以及构造函数详解
  20. 苹果MacBook电脑怎么捕捉特定窗口并截屏?

热门文章

  1. 内核中接收网络帧的处理
  2. 三星uboot1.1.6源码分析——start.s(4)——从NAND复制源码到RAM(3)
  3. java55矩阵output_将矩阵乘积输入到keras中的两个模型的输出
  4. CentOS7 iptables安装及操作
  5. 处理table 超出部分滚动问题
  6. 深入浅出JS:Two
  7. THML结构语义化之table/form
  8. 修改xampp中phpmyadmin用户管理
  9. semi-consistent简介
  10. Java多线程之后台线程不执行finally