ART运行时相关汇总

从Android5.0开始,默认的AndroidApp运行环境由Dalvik改为ART。ART采用AOT编译技术,在安装时预编译应用程序,提高了运行效率。同时,ART改进了垃圾回收算法,减少了应用程序在运行过程中的卡顿现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,在Android 5.0的时,正式将默认的Android App的运行环境由原来的Dalvik改变成了ART,那他们其中是什么区别的呢,对Android App的运行又有什么影响呢?

Dalvik的了解

Dalvik诞生于2000年代中期,那个时候移动设备的处理器速度相对较慢,内存也很有限。因此,Dalvik无法充分利用如今这些移动硬件,更快的CPU和GPU、更大的内存以及高分辨率屏幕。相反,新的ART平台就是专了发挥多核架构和64位指令集的优势而设计的。
Dalvik使用JIT编译技术:这种方案使应用程序的部分指令在运行的时候得到转换。JIT的优势是,应用程序没有运行的时候,它占用的内存相对较小。劣势是一边运行一边转换会使应用程序的性能变差。

ART的了解

ART相比Dalvik的区别是他它用的是ahead-of-time(AOT)编译技术。在ART中,一个应用程序的所有指令在运行前就编译好了。所以ART之所以会比Dalvik快,是因为ART执行的是本地机器指令。并且ART平台发挥多核架构和64位指令集的优势而设计的新的ART平台牺牲了内存来换取性能
ART的另一个重大改进是垃圾回收算法。Dalvik的垃圾回收分为两个阶段。第一个阶段,Dalvik暂停所有的线程来分析堆的使用情况。第二个阶段,Dalvik暂停所有线程来清理堆。因此,Dalvik中一次典型的垃圾回收耗时约10毫秒——这已经足够导致应用在性能上的“卡顿”(这里的术语“卡顿”指的是界面元素在屏幕上断断续续地移动。通常,糟糕的性能会导致应用在动画上丢帧。丢帧是卡顿的重要原因。)
在 APP 安装的时候使用 dex2oat 工具直接把 DEX 文件转换为机器码文件,运行的时候以机器码方式运行,可以充分利用系统性能;此外,改进的内存回收机制使得 ART 运行模式下的内存回收速度只有 Dalvik 运行时模式下的 50%,也能够提升系统运行速度。

ART与Dalvik简要说明

  1. ART支持64的指令集和多核架构。但这对增加内存的占用
  2. ART改进了垃圾回收算法,减少了在线程中回收垃圾的卡顿时间。
  3. App安装速度要慢与Dalvik环境下。
  4. 由于采用的是预编译的机制,APP占用的空间比Dalvik多上不少

深入

老罗:Android运行时ART简要介绍和学习计划

参考
http://www.infoq.com/cn/news/2014/07/art-runtime
http://36kr.com/p/213223.html
http://www.geekpark.net/topics/193134

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值