让Android飞!Google开始测试ART
Google正准备用全新的Android运行时环境——ART取代原来的Dalvik,此举有望使Android饱受诟病的运行效率(卡顿)得到大幅提高,像iOS一样顺滑。
目前Google在最新的Android4.4上向开发者提供两个运行时环境——默认的Dalvik和测试中的ART。
在经历2010年 与Oracle的Java专利大战后,Google一直在寻求为Android平台寻找新的移动应用运行方案(编者按,Oracle起诉Google正是因为Google通过Dalvik虚拟机把移动版Java给开源了),在最新的ANdroid4.4中,人们终于看到了代号ART的全新运行时环境。Google鼓励开发者尝试ART并提供反馈意见。
在 面向Android开发者的页面上,Google表示新的运行时环境依然处于试验阶段,还有一些工作没有完成。不过用户已经可以在Android4.4(随Nexus 5推出)的开发者设置选项中启用ART。
有国外记者尝试安装ART,整个过程花了大约十分钟优化手机中的app,但也许是测试版的缘故,程序运行速度和流畅度并未有太大提升。
Android应用目前的运行环境Dalvik能够即时编译Java代码,供Android系统运行app使用。那么为什么Google要用ART取代Dalvik呢?Android Police的分析也许更加简单明了:
ART,也就是Android Runtime运行时,处理应用执行的方式与 Dalvik完全不同。目前的运行时环境依赖即时编译器(Just-In-Time,JIT compiler)编译代码,换而言之,App开发者只编译了程序代码的一部分,其余的汇编工作则留给用户的设备每次运行app时完成,这会导致客户端设备比较大的开销,运行效率也不高,但这样做的好处是能够实现跨平台和架构。ART的设计初衷是将即时编译改为预先编译(Ahead of Time,AOT),这样程序每次运行时就不需要先启动虚拟机或编译代码,启动时间会大大缩短,执行速度也会大大提高。
Pingwest的 报道指出了ART的优点和缺点,摘录如下:
由于ART还处于测试阶段,所以目前还很难精确地度量出其为Android设备提升的效率。但是一些基准测试表明它将大多数应用程序的执行时间削减了一半左右。这就意味着那些需要大量处理器性能和长时间运行的任务会被更快地执行完毕,系统也会更多地停留在闲置状态。电量损耗会减少,流畅度也自然会提升。
当然ART带来一些优点的同时,也会带来一些缺点。
其一,由于ART需要应用程序在安装时就把程序代码转换成机器语言,所以这会消耗掉更多的存储空间,但消耗掉空间的增幅通常不会超过应用代码包大小的20%。
其二,由于有了一个转码的过程,所以应用安装时间难免会延长。拿最新的Google+应用为例,其apk格式的安装包大小为28.3MB,但其代码仅为6.9MB,所以多消耗掉的存储空间并不惊人。至于第二个缺点那就只能等待了。
事实上,ART项目在Google内部已经进行了2年左右的时间。回溯一下,当时差不多就是Google和甲骨文因为Java专利官司闹得不可开交的那段时期。虽然到今天我们很难判断发起ART项目的初衷是哪一个,但既然它能提升Android设备的性能,我们为什么不欢迎呢?