手机 频道

长相挫+性价比+一年不落伍 Nexus5评测

  7. Nexus5与ART——开创安卓新纪元

  评测文章的这一部分属于纯探讨,笔者对ART模式目前也处于一知半解阶段。但采用ART模式后,能够使得手机消耗更少的内存(RAM),运行程序更加流畅、更加省电是其最终的目的。开启ART模式的方法为设置——开发者选项——选择运行环境——ART。感兴趣的用户不妨看完这一篇后在文章下方留言讨论,如果不感兴趣,跳过此页对深入了解Nexus5没有任何影响。

7.Nexus5与ART——开创安卓新纪元
▲红框圈住的部分就是现有Dalvik虚拟机

  我们从头开始。在安卓系统建立伊始,谷歌并没有选择苹果的模式,采用了开放的软硬件平台。而开放的硬件平台就带来了如何解决不同硬件平台之间差异的问题。由于使用C/C++写出的程序需要针对硬件进行调试,从而一个软件要想在不同平台上使用需要费时费力。鉴于Java的通用性和Java程序员的庞大群体,谷歌选择了程序使用“类似”Java的规范,系统内置Dalvik虚拟机对程序语言进行编译,在进行运行的这种机制。这也就是为何很多人称安卓是一个虚拟机,而苹果IOS则是原生平台的缘故。虽然解决了不同平台之间不兼容的问题,但也大大降低了效率。由于Dalvik虚拟机采用了一种叫做Just in time的编译机制,使得程序在运行的过程中实时需要编译,并且每次进入程序需要从新编译一次,大大浪费了内存和CPU运算能力。

7.Nexus5与ART——开创安卓新纪元
▲甲骨文状告谷歌促使谷歌开发ART

  而ART模式则是谷歌在两年多以前就开始开发的一种全新的Runtime机制。用于代替Dalvik。其实ART的诞生存在着它的必然。上面我们讲到的Dalvik是对“类似”Java程序进行编译,就在2010年的时候,Java版权拥有者甲骨文状告谷歌侵犯了其Java方面的专利,要求法院将Dalvik的所有权判给甲骨文。咱们暂且不说谷歌是怎么在Java专利方面打擦边球的。基本就在同时,谷歌开始了ART的研究,不知道这是不是一个巧合。想要了解谷歌和甲骨文的恩仇录?点击这里告诉你。

  所谓ART模式,就是在程序安装的过程中就对程序进行一个预编译。从而在用户使用程序的时候,省去编译的步骤,从而节省运行程序时对RAM和CPU的依赖,这就是为什么谷歌敢说即使是512MB RAM的程序也可以流畅运行安卓4.4系统的原因。上图是采用Dalvik、ART、JNI(C/C++语言程序Runtime机制)的效率对比。可以看到相比Dalvik,ART的效率基本上提升了40%左右。这是相当大的一个进步。可以说ART模式将会将安卓系统带上一个新高度。

7.Nexus5与ART——开创安卓新纪元
▲ART模式相比Dalvik模式效率提升40%左右

  ART模式的适用范围是针对“类似”Java写成的程序的。其实目前安卓系统的软件不仅有Java,还有C/C++,那些常见的大型游戏,需要针对不同机型下载数据包的软件就是利用C/C++写成的,也就是说ART无法提升手机在运行这些大型软件时的效率。但是对我们日常使用非常频繁的微信、微博、小游戏等软件能起到省电、流畅的作用,上面的一段视频就是ART模式和Dalvik模式的对比。

7.Nexus5与ART——开创安卓新纪元
▲ART模式和Dalvik模式目前可以任选其一

  如果按照以上的说法,那么岂不是ART模式就是安卓的救世主了?那倒也不尽然,目前ART模式存在着不兼容软件多的情况。其实每次安卓更新都会引起大大小小N多软件的不兼容,这大多是软件未能按照谷歌给出的标准去写造成的。但笔者测试了几款微信游戏,在Dalvik模式下可以运行而在ART模式下无法运行,这就是问题所在。笔者猜测,很有可能问题出现在Java软件在编译过程中并不是无意义的,反射、ClassLoader等很多JAVA特性都需要这个过程体现。如果某些安卓软件不得不应用到这些特性的话,那么就无法在ART模式下兼容,目前根据谷歌官方的文档来看,至少在安卓4.4上,ART和Dalvik是共存模式,用户可以选择任意一个作为程序运行环境。谷歌何时能够解决ART模式的兼容问题,才是ART的春天。

  其实我们从不完全扁平化的软件图标风格、和很多实验性的功能来看,与其说安卓4.4是安卓4.3的升级,更不如说安卓4.4是未来安卓5.0的预热版。从安卓4.4的身上,我们看到了谷歌有N多大招等待着我们。到安卓5.0的时候,让我们看看安卓和iOS谁能笑到最后吧。

15
相关文章