在谷歌年中发布Android 5.0的时候,也发布了Android One计划,简单地说,就是谷歌千元甚至百元手机计划,但是它的最大特色就在于,即时手机的硬件配置低,却能流畅地运行Android系统,为什么低端配置能和流畅运行共生而不矛盾呢?
其实早在去年谷歌在发布Android 4.4时,就宣布,即使是运存空间只为512MB的手机,一样可以流畅的运行系统。很多人都在质疑,因为现在即使是运存空间为3GB的手机,也不敢保证运行Android系统不会出现卡顿的现象。那Google到底依靠什么让Android可以瞬间流畅起来呢?这背后其实就是依靠ART模式。
让Android变卡的Dalvik虚拟机
在解释Android系统为什么会卡顿前,先简单的介绍一下Android系统运行的机制。对Android系统有一定了解的朋友都知道。Android系统运行的程序,都是依靠Java语言编写完成的。虽然Android是基于Linux完成,但是在运行Java程序时,还是要事先构建出一个可以运行Java语言的虚拟机环境,这样Dalvik虚拟机就被Google制造出来了。
现在Android每个程序在运行时,都要先创建一个Dalvik虚拟机环境,你开的程序越多系统负担就越大,手机就越卡。而且你每次运行程序时,它们都要先在Dalvik虚拟机中进行编译。如果将程序关闭,再次打开时还需重新进行编译,系统执行效率可想而知。所以在这样的虚拟机环境中,Android想不卡都难。
让Android流畅起来的ART模式
上面说了这么多让Android变卡的原因,那现在说说Google是靠什么让Android变的不卡。ART虚拟机,其实就是Google让Android变流畅的关键。那到底什么是ART虚拟机呢?
ART虚拟机,是在Android 4.4中才出现的新功能,其全称是Android RunTime。不过Google目前还只是将其作为测试功能,所以把它雪藏在开发者选项中。ART虚拟机与Dalvik虚拟机最大的不同,就是对程序的编译方式。在ART虚拟机环境下,Android对程序只进行一次编译,就是在程序安装时。在安装应用时,ART虚拟机就先将程序的Java语言转化为适合Android系统运行的机器语言,而且是一次编译终身受用。这样就免于程序每次运行时,都要重新编译的麻烦了,系统的运行效率被大大提高。可以说正是借助ART虚拟机,Google才能骄傲的说,Android 4.4可以在即使只有512MB运存空间的手机上流畅运行。而且在ART模式下运行程序,会有一种如丝版顺滑的感觉,程序运行和切换都非常流畅。不过在ART模式下,因为现在的主流程序还没有针对ART虚拟机进行优化,所以程序的兼容性比较差。
一个简单的例子说明ART虚拟机的优势
我这里用一个简单的例子来告诉大家ART虚拟机的优势。比如我这里有一盒MM巧克力豆,现在有一种吃法是,每次想吃豆子的时候就把盒子打开,吃完再把盒子盖上,下次想吃就再打开盒子,这种吃豆的方法就相当于Dalvik虚拟机。另外一种吃法是,我把这盒豆子直接倒在碗里,想吃豆子直接从碗里拿,省去了每次打开盒子的麻烦,这种吃豆子的方法就相当于ART虚拟机。通过这个例子,相信大家就能很容易的明白ART虚拟机的优势了。
怎么打开ART模式
以目前可以升级到原生Android 4.4的Moto X为例。首先进入设置,然后选择关于手机,接着连续点击7次版本号以激活开发者选项。在开发者选项中选择运行环境,切换到ART模式并点击确认,待手机重启完成后,就成功进入了ART模式。
开启ART模式的缺点
左图为ART模式下微博所占空间大小,右图为Dalvik模式下微博所占空间大小
那这么好的功能,为什么Android要将他雪藏在开发者选项中呢?这主要是因为下面的原因:
1.在ART模式下程序安装后所占空间会陡然上升。
2.目前Android的应用还没有针对ART虚拟机进行优化,兼容性不好。
3.在ART模式下耗电速度会变快。
正是因为上面的这些原因,Android才让ART虚拟机雪藏在开发者选项中,估计在下一个版本的Android系统中,Google才会将ART模式进行推广,届时才有更多的用户可以体验到Android系统如丝般顺滑的快感。
为什么只有Android原生4.4才有ART模式
目前大部分厂商已经推送或者正在推送Android 4.4系统,但是很多细心的朋友会发现,一些厂商推送的Android 4.4并没有ART模式,那这是为什么呢?
这主要是因为,厂商如果要在自己的Android 4.4系统中增加ART虚拟机,需要对它的所有预置程序以及独立开发的程序进行重新的优化,这样会大大拖缓升级进程。其次目前Google也没有将ART虚拟机进行强制推广,所有的第三方应用也都没有针对新虚拟机进行优化,厂商在系统中加入ART模式,会大大影响系统的稳定性,这是系统升级中最为忌讳的,所以厂商就直接取消了原生系统中的ART虚拟机。
不过,随着Android 5.0的到来,ART正式被谷歌采用为默认编译器,同时淘汰了Dalvik,也就是说,不久之后,ART将与每一位Android用户见面,带来优秀的运行体验。