解析Android ART(附:实测数据)

移动开发 Android
Android 操作系统已逐渐成熟,谷歌开始将注意力转向一些底层组件,谷歌已经花了很长时间开发更快执行效率更高、更省电的 ART 运行时。

[[90671]]

本文的重点就是以新版 Nexus7 来作为样机来介绍和测试一下这个神秘的 ART。ART 是一个什么东西?

盼星星盼月亮,11 月 1 日,谷歌终于发布了代号为 KitKat 的 Android4.4 和 Nexus5。 个人认为 Android4.4 ***的更新就是针对 RAM 占用进行了优化并且推出 ART 来代替 Dalvik,其甚至可以在一些仅有 512MB RAM 的老款手机上流畅运行。它也进一步优化了系统在低配硬件上的运行效果,似乎是为了更好地在众多智能穿戴设备上运行。11 月 13 日,谷歌放出了 nexus7 和 nexus10 的 Android4.4。

本文的重点就是以新版 Nexus7 来作为样机来介绍和测试一下这个神秘的 ART。ART 是一个什么东西?在过去,安卓的应用程序由 Dalvik Java 虚拟机运行,Dalvik 依靠一个 Just-In-Time(JIT) 编译器去向硬件“解释” App 字节码,代码和硬件打交道时平白无故多出一个解释过程,显而易见,这种方式并不能直接调用底层的硬件,而是通过了一个中间介绍人来让 App 运行,这就是为什么搭载 Android 系统的手机相比 iPhone 来说耗电快,软件占内存大,卡顿严重。从而 Dalvik 被看作安卓运行效率低下的“毒瘤”。当然,Dalvik 虚拟机让应用能更容易在不同硬件和架构上运行,是安卓系统普及的功臣。

Android 操作系统已逐渐成熟,谷歌开始将注意力转向一些底层组件,谷歌已经花了很长时间开发更快执行效率更高、更省电的 ART 运行时。自 Android 4.4 开始,谷歌将逐渐用 ART 运行时替代 Dalvik。而新的 ART 则完全改变了 Dalvik 这套做法,其处理应用程序执行的方式完全不同于 Dalvik,在应用安装时,ART 就直接把代码预编译成机器语言,这一机制叫 Ahead-Of-Time (AOT)编译。和 Dalvik 相比,经过 ART 编译后的应用从根本上省略了解释字节码这个过程,运行起来更有效率、耗电更少、占的内存也更低。当然,预编译也带来了两个问题,一个是应用占用的存储空间 将会更大,另一个是这个过程也会让应用安装耗时更长。预编译的 App 体积会大一些,安装时间则要看 App 本身的复杂程度。不过,App 的安装过程只有一次,相信大部分人是能忍受这个时间的。以下是用 2013 版 Nexus7(16G)进行的测试,不排除不同版本之间存在误差。在本文发布时不排除应用已经更新从而对新系统进行了适配。以下所有的测试都是进行多次实 验算得的平均值。

[[90672]]

应用占空间大小对比表:

应 用名称及版本号 ART 占用空间大小 Dalvik 占空间大小 微信 5.0.3.1 52.62M 35.96M 快播 3.1.78 72.62M 61.04M 京东 2.7.0 15.25M 8.98M 神庙逃亡 2 1.4.2 29.94M 24.15M 淘宝 3.9.3 46.22M 32.21M 鲜果 3.5.5 13.12M 9.10M QQ 4.5.2 63.04M 44.64M PS Touch 1.1.1 42.73M 41.52M

从上面的测试可以看出,应用安装上后分别使用 ART 和 Dalvik 方式所占的空间大小还是有很大区别的。京东和微信两个应用甚至都快达到两倍的关系了。PS Touch 却相差很少。在 16G 是智能手机的标配,存储器越来越大,越来越便宜的今天,如果 ART 能大幅提高 Android 用户体验及功耗的话,这点存储损耗还是可以接受的。那***次搭载的 ART Andoid4.4 到底争不争气,是不是能带来很大提升,接着往下看。

启动时间对比表:

应 用名称 ART 启动时间 Dalvik 启动时间 快播 3.1.78 3.2s 3.1s 京东 2.7.0 3.6s 3.8s 神庙逃亡 2 1.4.2 6.9s 7.0s 淘宝 3.9.3 3.5s 3.6s 鲜果 3.5.5 4.2s 4.2s QQ 4.5.2 2.9s 2.3s PS Touch 1.1.1 6.3s 8.1s 从上面的测试可以看出除了 PS Touch 和 QQ 相差较大外,其他应用的启动时间相差不大。QQ 可能兼容性稍差些,使用 ART 反而比 Dalvik 启动时间长。PS Touch ART 的启动时间还是有比较明显的提升。从这一局 PK 来看,不分胜负。

软件兼容性对比表:

应用名称 ART 兼容性 Dalvik 兼容性 快播 3.1.78 可以硬解,无法软解 可以硬解,无法软解 神庙逃亡 2 1.4.2 兼容 兼容 微信 兼容 兼容 京东 2.7.0 兼容 兼容 MX Player 1.7.20 兼容 兼容 淘宝 3.9.3 兼容性差(自动停止)兼容 QQ 空间 4.0.5.874 兼容 兼容 鲜果 3.5.5 兼容 兼容 水果忍者(新版)1.0.0 不兼容 兼容 豌豆荚 3.44.1 兼容性差(自动停止)兼容 UC 浏览器 9.3.2 不兼容 不兼容 QQ 4.5.2 兼容 兼容 天天酷跑 1.0.7.0 不兼容 兼容 新浪微博 4.1.0 兼容 兼容 这一次的测试结果显而易见,使用 Dalvik 的兼容性完爆使用 ART 的。虽然说在使用 Dalvik 时也出现了少许不兼容,但这应该是更新了新系统导致的,属于正常现象,而使用 ART 时多个应用和游戏出现不兼容这就说不过去了。

笔者又 对系统流畅性和耗电进行了粗略性的测试发现 Android4.4 在 ART 和 Dalvik 情况下耗电和流畅度基本差不多,但相比 Android4.3,系统流畅性还是有比较明显地提升。至于安装应用所用的时间,笔者粗略测试使用 ART 模式所用的时间是 Dalvik 模式下的两倍。新版的 Nexus7 跳屏问题是众所周知的,谷歌对此打了补丁也是无效,很多人悲观的认为是硬件的问题,我的 N7 也时不时的犯病,让人惊喜的是更新了 4.4 后,我使用了一整天再也没有出现过这个问题,难道就是系统问题?现在还不能下定论,让时间来检验吧。看到这不用说大家也能得出结论,现在的 ART 还不能与 Dalvik 抗衡。那为什么谷歌还要加上这个功能呢?从技术上来讲,ART 的执行效率肯定比 Dalvik 高,可能由于部分软件没有针对其进行优化,加上这项技术谷歌可能还没有消化好,从而出现了性能反而不如 Dalvik 的情况。Androd 默认使用的是 Dalvik 模式,再加上这个功能本来就是针对开发者测试用的,所以建议普通用户还是不要切换的好。话又说回来了,这项技术能从根源上解决或者是缓解耗电快,软件占内存大,卡顿严重的问题,相信通过谷歌的优化,下一个 Android 版本 ART 会直接是默认的运行模式。该来的总会来的,让我一起等待 Android5.0 的到来吧。

责任编辑:闫佳明 来源: wumii
相关推荐

2013-11-21 10:23:50

ARTAndroid

2013-11-28 15:03:56

Android4.4ART模式省电原理

2013-11-26 16:49:55

Android开发运行时KitKat

2013-11-28 13:47:37

Android4.4ART模式

2013-11-28 13:53:08

Android4.4ART运行模式

2023-02-20 14:24:56

AndroidDalvikART

2018-09-05 21:07:06

数据管理

2013-11-28 15:25:37

Android4.4ART模式苹果

2010-01-25 15:57:34

Android保存数据

2013-11-18 09:36:51

Android4.4KitkatART

2009-03-10 08:54:19

RMANEXP、IMP数据转移

2013-11-28 14:01:55

Android4.4ART模式

2013-11-11 15:31:32

虚拟机Android Run

2010-01-25 14:57:49

Android数据库

2018-05-03 08:49:24

大数据程序员面试

2010-12-07 08:55:16

Android 2.3

2022-05-01 21:36:11

LinuxLinux Mint

2013-12-06 10:43:52

Android 4.4特性

2023-09-18 09:31:41

AI电影

2013-11-08 11:18:44

GoogleARTDalvik
点赞
收藏

51CTO技术栈公众号