65.9K
CodeProject 正在变化。 阅读更多。
Home

Android 新运行时 ART

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.70/5 (9投票s)

2014年6月13日

CPOL

3分钟阅读

viewsIcon

15575

Android 操作系统 Kit Kat 版本(Android 4.4)中的新运行时

引言

谷歌在 4.4 版本(Kit Kat)中实验性地引入了一种新的 Android 运行时 “ART”。

描述

谷歌一直在不断地从一个版本到另一个版本引入新功能。在 Kit Kat Android 4.4 版本中,它通过引入新的实验性 Android 运行时“ART”提高了 Android 应用程序的执行性能。

Android 应用程序以 Dalvik 字节码部署,它是可移植的,不像本地代码。为了在设备上运行应用程序,代码必须被编译成机器代码。

Kit Kat 是第一个具有两种 Android 运行时变体的 Android 操作系统版本

  • Dalvik
  • ART

Dalvik 基于“JIT”即时编译工作。每次运行应用程序时,执行所需的代码部分将在那一刻被编译成机器代码。 随着您在应用程序中的进展,将编译并缓存其他代码。 系统可以在应用程序运行时重用代码。 JIT 仅编译部分代码,因此它具有较小的内存占用空间,并使用较少的设备物理空间。

ART 的工作方式类似于将中间语言 --> Dalvik 字节码 --> 编译成与系统相关的二进制代码。 应用程序的完整代码将在安装期间一次性预编译,从而消除了我们在设备上打开应用程序时看到的延迟。 由于无需 JIT 编译,与 Dalvik 运行时相比,代码应该执行得更快。

除了速度提升之外,使用 ART 还可以为移动/便携设备提供最重要的次要关键优势。 ART 直接运行应用程序机器代码(即,本地执行),它不像 Dalvik 上的即时代码编译那样大量使用 CPU。 减少 CPU 使用量会导致更少的电池消耗,这对于通常在选择购买移动设备时关注此点的用户来说是一个很大的优势。

ART 的主要缺点是生成的机器代码(即,本地代码)需要比现有字节码更多的空间。 代码在安装时预编译,因此安装过程需要更长的时间。 此外,它还在执行时对应于更大的内存占用空间。 这意味着同时运行的应用程序更少。 现在内存的成本要便宜得多,即使在低端设备上也具有足够的 RAM 和 ROM,因此 ART 是新 Android 版本的逻辑进步。

这是 KitKat 中正在进行的工作的预览,可以在“设置”->“开发者选项”->“选择运行时”->“使用 ART”->“确定重启”中打开,如图所示。

Settings

developer options

Select runtime

 Use ART

重启后,当移动设备启动时,Android 移动设备将使用新的运行时 ART 运行。 作为一名 Android 开发者,每次进行小的更改时,我都想在设备上测试已安装的新应用程序实例。 如前所述,ART 使用 Android 一次性编译,这会延长应用程序的安装时间,因为 Dalvik 字节码会被编译成机器代码。 每次将新版本的应用程序部署到我的测试移动设备上时,都需要等待额外的时间,以便该应用程序针对 ART 运行时进行优化。 这会导致部署过程中的显着延迟。 在我的应用程序开发过程中,我们一个较大的项目从 27 秒跃升至 39 秒。

关注点

在编码方面,使用两种运行时进行正常的 Android 应用程序开发是相同的。 我对在 Google 的 Motorolo Android 设备“Moto G”上使用新的运行时 ART 观察到的结果的快速概述是 CPU 算术运算、RAM 运算和存储运算的速度有所提高,这导致整体平均速度提高了 20%。

在玩游戏时,我还观察到流畅度和触摸响应得到了很大的改善。

历史

  • 2014 年 6 月 11 日:初始版本
© . All rights reserved.