在谷歌年中發(fā)布Android 5.0的時候,也發(fā)布了Android One計(jì)劃,簡單地說,就是谷歌千元甚至百元手機(jī)計(jì)劃,但是它的最大特色就在于,即時手機(jī)的硬件配置低,卻能流暢地運(yùn)行Android系統(tǒng),為什么低端配置能和流暢運(yùn)行共生而不矛盾呢?
其實(shí)早在去年谷歌在發(fā)布Android 4.4時,就宣布,即使是運(yùn)存空間只為512MB的手機(jī),一樣可以流暢的運(yùn)行系統(tǒng)。很多人都在質(zhì)疑,因?yàn)楝F(xiàn)在即使是運(yùn)存空間為3GB的手機(jī),也不敢保證運(yùn)行Android系統(tǒng)不會出現(xiàn)卡頓的現(xiàn)象。那Google到底依靠什么讓Android可以瞬間流暢起來呢?這背后其實(shí)就是依靠ART模式。
讓Android變卡的Dalvik虛擬機(jī)
在解釋Android系統(tǒng)為什么會卡頓前,先簡單的介紹一下Android系統(tǒng)運(yùn)行的機(jī)制。對Android系統(tǒng)有一定了解的朋友都知道。Android系統(tǒng)運(yùn)行的程序,都是依靠java語言編寫完成的。雖然Android是基于linux完成,但是在運(yùn)行Java程序時,還是要事先構(gòu)建出一個可以運(yùn)行Java語言的虛擬機(jī)環(huán)境,這樣Dalvik虛擬機(jī)就被Google制造出來了。
現(xiàn)在Android每個程序在運(yùn)行時,都要先創(chuàng)建一個Dalvik虛擬機(jī)環(huán)境,你開的程序越多系統(tǒng)負(fù)擔(dān)就越大,手機(jī)就越卡。而且你每次運(yùn)行程序時,它們都要先在Dalvik虛擬機(jī)中進(jìn)行編譯。如果將程序關(guān)閉,再次打開時還需重新進(jìn)行編譯,系統(tǒng)執(zhí)行效率可想而知。所以在這樣的虛擬機(jī)環(huán)境中,Android想不卡都難。
讓Android流暢起來的ART模式
上面說了這么多讓Android變卡的原因,那現(xiàn)在說說Google是靠什么讓Android變的不卡。ART虛擬機(jī),其實(shí)就是Google讓Android變流暢的關(guān)鍵。那到底什么是ART虛擬機(jī)呢?
ART虛擬機(jī),是在Android 4.4中才出現(xiàn)的新功能,其全稱是Android RunTime。不過Google目前還只是將其作為測試功能,所以把它雪藏在開發(fā)者選項(xiàng)中。ART虛擬機(jī)與Dalvik虛擬機(jī)最大的不同,就是對程序的編譯方式。在ART虛擬機(jī)環(huán)境下,Android對程序只進(jìn)行一次編譯,就是在程序安裝時。在安裝應(yīng)用時,ART虛擬機(jī)就先將程序的Java語言轉(zhuǎn)化為適合Android系統(tǒng)運(yùn)行的機(jī)器語言,而且是一次編譯終身受用。這樣就免于程序每次運(yùn)行時,都要重新編譯的麻煩了,系統(tǒng)的運(yùn)行效率被大大提高??梢哉f正是借助ART虛擬機(jī),Google才能驕傲的說,Android 4.4可以在即使只有512MB運(yùn)存空間的手機(jī)上流暢運(yùn)行。而且在ART模式下運(yùn)行程序,會有一種如絲版順滑的感覺,程序運(yùn)行和切換都非常流暢。不過在ART模式下,因?yàn)楝F(xiàn)在的主流程序還沒有針對ART虛擬機(jī)進(jìn)行優(yōu)化,所以程序的兼容性比較差。
一個簡單的例子說明ART虛擬機(jī)的優(yōu)勢
我這里用一個簡單的例子來告訴大家ART虛擬機(jī)的優(yōu)勢。比如我這里有一盒MM巧克力豆,現(xiàn)在有一種吃法是,每次想吃豆子的時候就把盒子打開,吃完再把盒子蓋上,下次想吃就再打開盒子,這種吃豆的方法就相當(dāng)于Dalvik虛擬機(jī)。另外一種吃法是,我把這盒豆子直接倒在碗里,想吃豆子直接從碗里拿,省去了每次打開盒子的麻煩,這種吃豆子的方法就相當(dāng)于ART虛擬機(jī)。通過這個例子,相信大家就能很容易的明白ART虛擬機(jī)的優(yōu)勢了。
怎么打開ART模式
以目前可以升級到原生Android 4.4的Moto X為例。首先進(jìn)入設(shè)置,然后選擇關(guān)于手機(jī),接著連續(xù)點(diǎn)擊7次版本號以激活開發(fā)者選項(xiàng)。在開發(fā)者選項(xiàng)中選擇運(yùn)行環(huán)境,切換到ART模式并點(diǎn)擊確認(rèn),待手機(jī)重啟完成后,就成功進(jìn)入了ART模式。
開啟ART模式的缺點(diǎn)
左圖為ART模式下微博所占空間大小,右圖為Dalvik模式下微博所占空間大小
那這么好的功能,為什么Android要將他雪藏在開發(fā)者選項(xiàng)中呢?這主要是因?yàn)橄旅娴脑颍?/p>
1.在ART模式下程序安裝后所占空間會陡然上升。
2.目前Android的應(yīng)用還沒有針對ART虛擬機(jī)進(jìn)行優(yōu)化,兼容性不好。
3.在ART模式下耗電速度會變快。
正是因?yàn)樯厦娴倪@些原因,Android才讓ART虛擬機(jī)雪藏在開發(fā)者選項(xiàng)中,估計(jì)在下一個版本的Android系統(tǒng)中,Google才會將ART模式進(jìn)行推廣,屆時才有更多的用戶可以體驗(yàn)到Android系統(tǒng)如絲般順滑的快感。
為什么只有Android原生4.4才有ART模式
目前大部分廠商已經(jīng)推送或者正在推送Android 4.4系統(tǒng),但是很多細(xì)心的朋友會發(fā)現(xiàn),一些廠商推送的Android 4.4并沒有ART模式,那這是為什么呢?
這主要是因?yàn)?,廠商如果要在自己的Android 4.4系統(tǒng)中增加ART虛擬機(jī),需要對它的所有預(yù)置程序以及獨(dú)立開發(fā)的程序進(jìn)行重新的優(yōu)化,這樣會大大拖緩升級進(jìn)程。其次目前Google也沒有將ART虛擬機(jī)進(jìn)行強(qiáng)制推廣,所有的第三方應(yīng)用也都沒有針對新虛擬機(jī)進(jìn)行優(yōu)化,廠商在系統(tǒng)中加入ART模式,會大大影響系統(tǒng)的穩(wěn)定性,這是系統(tǒng)升級中最為忌諱的,所以廠商就直接取消了原生系統(tǒng)中的ART虛擬機(jī)。
不過,隨著Android 5.0的到來,ART正式被谷歌采用為默認(rèn)編譯器,同時淘汰了Dalvik,也就是說,不久之后,ART將與每一位Android用戶見面,帶來優(yōu)秀的運(yùn)行體驗(yàn)。
新聞熱點(diǎn)
疑難解答
圖片精選