Android 7.0應(yīng)用安裝速度為什么那么快?

去年三月份,Google發(fā)布了首個(gè)Android 7.0(Android Nougat)測(cè)試版,五月份發(fā)布正式版,雖然至今Android 7.0不足5%的市場(chǎng)占有率,足以讓蘋(píng)果笑掉大牙,但是隨著三四月份新機(jī)扎堆發(fā)布,Android 7.0肯定會(huì)迎來(lái)一波爆發(fā)。或許你會(huì)問(wèn),Android 7.0有什么好的,我現(xiàn)在用6.0穩(wěn)定得很呢,倒還真有一個(gè)能讓你有真切感受的變化,用我們小超哥的話(huà)講就是“震驚!Android 7.0應(yīng)用安裝速度飆升666%!”,你還別不信,先看看小超哥做的一個(gè)與Android 6.0的對(duì)比視頻:
Android 7.0與Android 6.0應(yīng)用安裝速度對(duì)比
視頻中用的測(cè)試手機(jī)為Nexus 5X,在A(yíng)ndroid 6.0中,安裝同一版本的手機(jī)淘寶用時(shí)28秒,升級(jí)到Android 7.0后,安裝手機(jī)淘寶僅用時(shí)14秒,請(qǐng)問(wèn)你震驚了嗎?
下次有基友或妹子問(wèn)你Android 7.0有什么好的時(shí)候,你完全可以大膽告訴他們,Android 7.0的軟件安裝速度快了一倍啦~~~~不信你上超能網(wǎng)看看對(duì)比視頻,萬(wàn)一妹子驚呆了,追問(wèn)一句,怎么會(huì)快這么多呢,你肯定不能回答不知道吧,所以我軍從不打無(wú)準(zhǔn)備之仗,要做一個(gè)脫離低級(jí)趣味一個(gè)有益于人民一個(gè)BIGGER滿(mǎn)滿(mǎn)的人,你必須往下看。
Android 4.4時(shí)的JIT解決方案
故事還得回到幾年前,還是Android 4.4的時(shí)代,那時(shí)Android還是用的Dalvik虛擬機(jī),配合的是JIT編譯器(Just In Time,即時(shí)編譯器),其實(shí)Google在A(yíng)ndroid 2.2時(shí)就添加了JIT。當(dāng)APP運(yùn)行時(shí),JIT編譯器就會(huì)對(duì)新類(lèi)進(jìn)行編譯,經(jīng)過(guò)編譯后的代碼,會(huì)被優(yōu)化成相當(dāng)精簡(jiǎn)的原生型指令碼,這樣在下次執(zhí)行到相同邏輯的時(shí)候,速度就會(huì)更快。
JIT是在運(yùn)行時(shí)編譯,優(yōu)缺點(diǎn)很明顯,安裝速度快占用存儲(chǔ)空間小,主要問(wèn)題是在運(yùn)行時(shí)編譯開(kāi)銷(xiāo)大,容易造成卡頓,所以在這之后,Google果斷壯士斷腕,在A(yíng)ndroid 5.0和Android 6.0中放棄了Dalvik轉(zhuǎn)投ART(Android Runtime)虛擬機(jī)懷抱,編譯策略也棄JIT改用AOT(Ahead Of Time)方案。
Android 6.0采用了AOT編譯方案
ART的策略與Dalvik不同,應(yīng)用在第一次安裝的時(shí)候,字節(jié)碼就會(huì)預(yù)先編譯成原生型指令碼,使其成為真正的本地應(yīng)用。以后運(yùn)行APP時(shí),不需要再進(jìn)行編譯,啟動(dòng)速度和運(yùn)行速度都提高了,也就不那么卡頓了。
但是這種方案也有明顯缺點(diǎn),就是在安裝中要全面預(yù)編譯,安裝時(shí)間難免長(zhǎng),而且會(huì)消耗掉更多的存儲(chǔ)空間,根據(jù)我們的測(cè)試,手機(jī)淘寶這個(gè)APP在A(yíng)ndroid 6.0系統(tǒng)中應(yīng)用存儲(chǔ)大小為171MB,在A(yíng)ndroid 4.4系統(tǒng)中占用為154MB,相當(dāng)于占用空間多了10%。截圖就不貼了,有興趣的朋友可找小超哥(微信9501417)索取。
在A(yíng)ndroid 7.0中,Google進(jìn)一步改進(jìn)了編譯策略,這次他直接來(lái)了個(gè)Hybrid Mode,也就是AOT + JIT混合模式,糅合了兩者的優(yōu)點(diǎn):
Android 7.0的編譯策略
Google是這么說(shuō)的:Android 7.0添加了一個(gè)JIT編譯器與代碼分析到ART,JIT編譯器是對(duì)ART當(dāng)前的AOT編譯器的一個(gè)補(bǔ)充,提高運(yùn)行時(shí)性能,節(jié)省存儲(chǔ)空間,加快應(yīng)用程序更新和系統(tǒng)更新。
在A(yíng)ndroid 7.0中,安裝應(yīng)用時(shí)不再像6.0那樣對(duì)應(yīng)用代碼進(jìn)行完整的預(yù)編譯,而是會(huì)根據(jù)JIT編譯器的分析結(jié)果,在設(shè)備充電或其余空閑時(shí)間對(duì)“cold code”進(jìn)行解釋?zhuān)瑢?duì)于“hot code”,則在實(shí)際使用時(shí)由JIT進(jìn)行編譯,因此應(yīng)用安裝時(shí)間和占用空間大大減少了,像手機(jī)淘寶這個(gè)APP在A(yíng)ndroid 7.0系統(tǒng)中的占用大小為156MB,和Android 4.4系統(tǒng)中非常接近。主要的是,它還不會(huì)影響到應(yīng)用的運(yùn)行速度。
Android 7.0中的JIT架構(gòu) - 它是如何工作的
總結(jié)一下,在A(yíng)ndroid 7.0,采用了AOT + JIT混合編譯策略,帶來(lái)的好處如下:
﹒APP安裝時(shí)間大幅縮短,只有Android 6.0系統(tǒng)的50%;
﹒系統(tǒng)升級(jí)OTA速度加快,不再需要優(yōu)化;
﹒應(yīng)用占用空間更少,一般會(huì)少10%;
﹒降低系統(tǒng)開(kāi)銷(xiāo),改善電池消耗。
相關(guān)閱讀:
國(guó)行S7/S7 Edge Android 7.0正式推送:體驗(yàn)性能大提升
哪些手機(jī)能升級(jí)安卓7.0?這些國(guó)行機(jī)能升級(jí)Android 7.0
相關(guān)文章
除了小米5c之外 還有哪些機(jī)型能夠升級(jí)Android 7.0?
手機(jī)的系統(tǒng)總是在不斷的升級(jí),越高版本的系統(tǒng)手機(jī)的功能就越好用,安卓發(fā)布了7.0的系統(tǒng),你的手機(jī)系統(tǒng)升級(jí)了嗎?對(duì)于米粉來(lái)說(shuō),除了小米5c之外,還有哪些機(jī)型能夠升級(jí)Android 72017-03-17國(guó)行S7/S7 Edge Android 7.0正式推送:體驗(yàn)性能大提升
農(nóng)歷春節(jié)前,三星官方就表示會(huì)在2月下旬推送三星S7和S7 Edge國(guó)行版本的安卓7.0更新,今天上午國(guó)行Galaxy S7、S7 Edge終于收到了Android 7.0的正式推送,本次升級(jí)最大的特色自2017-03-07三星S7 Edge升級(jí)Android 7.0續(xù)航測(cè)試:明顯下降
三星為旗下Galaxy S7系列手機(jī)推出了Android 7.0(Nougat)升級(jí)更新。經(jīng)過(guò)測(cè)試搭載三星Exynos 8890和高通驍龍820處理器的Galaxy S7 Edge手機(jī),對(duì)比該手機(jī)在A(yíng)ndroid 6.0和And2017-02-06哪些手機(jī)能升級(jí)安卓7.0?這些國(guó)行機(jī)能升級(jí)Android 7.0
三星表示,三星電子已經(jīng)開(kāi)始在全球開(kāi)啟蓋樂(lè)世S7/S7edge升級(jí)推送工作,具體每個(gè)國(guó)家和地區(qū)的升級(jí)時(shí)間有所不同,那么哪些手機(jī)能升級(jí)安卓7.0?下面這些國(guó)行機(jī)能升級(jí)Android 7.02017-01-26- 從昨天開(kāi)始,旗下的P9和P9 Plus開(kāi)始全網(wǎng)推送EMUI 5.0升級(jí),升級(jí)之后系統(tǒng)內(nèi)核會(huì)變成Android 7.0.那么華為P9/Plus如何升級(jí)Android 7.0?那些還沒(méi)有收到推送的用戶(hù),可以直接通2017-01-19
小米5 Android 7.0體驗(yàn)版發(fā)布:只剩下線(xiàn)刷包
三星Galaxy S7 Edge升級(jí)Android 7.0體驗(yàn):煥然一新
安卓7.0正式版OTA鏡像下載 Android 7.0刷機(jī)教程
Android7.0效率史上最高 應(yīng)用運(yùn)行速度飆升600%!