對話小米工程師:深度解析MIUI9快如閃電如何煉成

掃碼閱讀手機版

來源: 天津北方網 作者: 編輯:張思政 2017-08-11 18:02:29

  8月11日,小米開始推送第一批MIUI9開發版適配機型,包括了小米6、小米5X、紅米Note 4X(高通版),這是小米發布全新一代MIUI系統後,小米手機系統昇級的第一步。在此之前,從7月27日開始往後短短半個月時間,MIUI9內測階段已經有10萬人通過刷機或OTA在線昇級方式使用上MIUI9。

  在MIUI9發布後半個月時間裡,翻看微博和知乎平臺上網友的評價,這10萬用上MIUI9的小米發燒友,對MIUI9打出的『快如閃電』體驗給予了很正面的評價,稱贊最新一代MIUI系統『快得飛起』『快得不像安卓系統』。

  這種『快』是怎麼練就的?7月26日發布會當天由於時間有限PPT上只是一帶而過,『應用啟動加速』、『動態資源管控』、『內存實時反碎片』等十幾個黑科技詞匯聽起來不明覺厲,但似乎又不明所以。本周小編與我們工程師進行了一場深度交流,深入研究MIUI9是如何『變快』的。

  安卓手機使用越久會越卡?看工程師怎麼說

  安卓手機使用時間越長,系統運行速度會變慢,給普通用戶的感覺就是『卡頓』『不跟手』。同時使用iPhone和安卓手機的『雙槍黨』這種感受會更明顯一些。

  對於工程師來說,這個現象是有悖常理的。因為手機的硬件配置,諸如CPU、內存、GPU等不會隨著手機使用時間變長出現過多損耗。另一方面,雖然每臺手機裡安裝的APP有幾十上百個,但最常用的也一般在10個以內,安卓手機的高配置是可以支橕這些應用流暢運行的。

  那麼問題出在哪裡?工程師向我們介紹,很重要一個原因是安卓系統的開放性,導致眾多APP在調用手機系統權限和資源時不克制乃至貪婪,甚至相互之間不斷交叉喚醒,發生CPU、GPU、I/O資源、網絡帶寬等資源不當佔用,該快的時候不快,發生卡頓。

  作為手機操作系統,過去四年時間,MIUI一直在做這方面的管束。比如2013年MIUI V5推出對齊喚醒,把多次不間斷喚醒管控為集中式喚醒;2015年MIUI7推出增強版對齊喚醒,續航時間比上一代MIUI6延長了25%。今年MIUI9,在資源管控方面可謂下了『重典』,重點分配資源給當前正在使用的APP,約束其他非活躍應用。同步實施的還有文件系統的昇級,內存實時反碎片技術,核心組件擁塞控制機制,等等。出來的效果就是影響手機體驗的核心幾十項問題裡,通過逐步克服優化,讓手機的流暢體驗發生了質變。接下來,在小米工程師的科普下,筆者帶大家來深入了解這些背後的黑科技。

  用來武裝MIUI912項黑科技,在哪裡?

  根據小米的說法,MIUI9共采用了12項黑科技,來打造『快如閃電』的系統。它們分別是:應用啟動加速,動態資源分配,關鍵場景響應加速,核心組件擁塞控制,持續自動清理,全新文件系統,文件系統緩存管理,內存實時反碎片,異常排除機制,提高通訊效率,無線數據包加速,深度復蘇。由於文章篇幅有限,下面重點介紹其中5項黑科技技術。

  1、動態資源分配

  動態資源分配技術,表面上是手機系統對於各種資源如CPU資源、內存資源、I/O資源、網絡帶寬資源的合理分配,實際上背後需要非常龐大的數據支橕纔能讓各種系統資源合理分配。簡單來講,MIUI9系統大幅提高當前應用在資源分配中的權重,對高優先級應用進行了更細致區分。

  其實安卓原生系統很早就設置了『前臺應用』『後臺應用』兩個調度組,來管控資源分配。MIUI9更進一步,把介於前臺、後臺之間的應用行為比如通知欄應用放到第三個組,如果前臺應用(即當前正在使用的應用)運行資源不足,會擠壓『第三組應用』調用系統資源的份額,確保當前應用流暢運行。這個過程就像一個家長管理孩子們對零食、書籍、玩具……需求一樣,不能無盡應允,也不能隨時隨地應允,必須加以合理管控和引導纔能教出一個『好孩子』。

  2、全新文件系統

  MIUI9采用了與最新一代Android O系統相同的SDcardfs文件系統,這是安卓系統未來的發展方向。

  在此之前,原生Android為了讓各個應用之間數據隔離,讓A應用沒法讀取B應用數據,在系統中增加了一個叫『Fuse』的虛擬文件系統,當應用需要讀寫虛擬SD卡中的數據時,必須經過Fuse空間纔可以傳送到系統底層EXT4空間,然後系統底層和Fuse虛擬空間會進行多次往返的數據傳送,最終再傳送給系統前端,實現一個完整的操作閉環(在實際操作手機的體驗中,這個過程是毫秒級的)。

  因為『Fuse』虛擬文件系統和『EXT4』底層之間頻繁的數據讀寫會對應用啟動速度產生影響。根據Google在Pixel上的測試數據,通過『Fuse』虛擬文件系統隨機寫的速度損耗達30%-50%,而SDcardfs損耗則可以控制在5%以內,另外『Fuse』隨機讀取數據的速度損耗達到90%以上,SDcardfs可以控制在20%以內。這正是這種巨大的讀寫速度提昇,最終呈現給用戶的是App應用相應速度的大幅提昇。

  MIUI 9系統采用全新的SDcardfs文件系統後——這是最新一代Android O/Android 8.0采用的技術,代表著安卓系統未來的發展方向——應用啟動速度有明顯的提昇。比如在小米內部測試中,游戲《陰陽師》在小米6上的啟動速度由9秒迅速縮減至5秒左右,效果非常明顯。

  3、內存實時反碎片

  內存實時反碎片也是MIUI9一項黑科技。那麼什麼是手機的內存碎片?舉一個通俗的例子:如果我們把手機內存看作一個記事本,數據讀寫看作在本子上寫入內容。隨著手機啟動,各種應用以及系統數據會不斷寫入內存中,這時候會出現記事本上某一頁紙上沒有寫入內容(『一頁紙』在內存中的單位是4kb),而前後兩頁均被使用的情況,這時我們可以把這頁沒有使用的『紙張』看作一個內存碎片——對於一臺4GB運行內存(RAM)的手機來說,這類碎片可能是幾千個。

  隨著手機使用時間增長,手機內存中有可能會出現大量不連續的內存碎片,當有些數據的讀寫需要使用連續內存頁時,雖然手機此時還有內存,但由於它是不連續的,從而導致應用數據無法讀寫。針對這個狀況,安卓原生系統其實做了不少工作,它通過內存回收的方式『騰出』可以滿足當前需求的連續內存頁。

  但遇到多任務切換或系統資源調用時,剛騰出來的A內存,如果此時你去做B操作,A內存數據已經被回收了;當你從B操作切回到A時,系統需要重新去找滿足A的連續內存頁並寫入數據……如此反復倒騰,會加速了手機I/O硬件損耗,並且對系統流暢性大打折扣。

  MIUI 9采用內存實時反碎片技術,通過復雜的算法來判斷內存碎片是否可以被移動和整理,最大程度保證系統內存的實時連續性,以應對隨時可能出現的連續內存數據讀寫需求,從而減少因為內存的不連續性導致的頻繁回收和重寫,讓系統的內存讀寫時刻處於最佳狀態,實現流暢運行。

  4、文件系統緩存管理

  和內存實時反碎片功能有所關聯的是文件系統緩存管理技術。在手機打開存儲空間裡的一個視頻或者圖片時,手機系統需要先將文件數據寫入系統內存,再通過讀取系統內存數據將文件展示到用戶眼前。

  前面我們提到了當系統連續內存數據不滿足當前操作所需時,會進行內存回收釋放,這就可能導致部分熱點文件的數據被頻繁的回收和讀取。

  MIUI9文件系統緩存管理就是通過系統算法判斷熱點文件所使用的系統緩存,對它們加以保護,防止出現因為內存回收導致的數據反復讀取現象。

  5、核心組件擁塞控制

  由於文章篇幅所限,最後再向大家介紹一個MIUI9黑科技——核心組件擁塞控制。

  一般來講,手機系統核心組件包括『廣播』、『服務』、『界面』和『讀取數據庫』四大組件,每一個應用都包含了這四個組件。例如高德地圖的發push消息(廣播),在導航時告訴手機系統不要熄屏(服務),APP的操作界面(界面),在多任務後臺停留(讀取數據庫)等等行為,都是通過『組件』來實現的。可以說所有APP在手機裡的存在,都是表現為『組件的行為』。

  不同APP組件之間存在資源的競爭關系,比如各個應用都需要讀取數據庫,但系統一次只會允許一個應用的系統組件讀取,其他應用的『組件行為』就需要排隊等候。

  為了能夠讓自己的系統組件得到快速響應,某些應用會采取一些非常規手段進行插隊,這就可能導致其他應用的組件需求無法得到及時滿足,從而導致系統出現卡頓、耗電等情況。

  對此MIUI 9引入核心組件擁塞控制技術,當發現一些非常規組件頻繁發起響應請求,長時間佔用CPU、內存等硬件資源時,系統會對其行為進行判斷,如果不是緊急需求,便會降低該應用的優先權,比如限制其最大可用CPU資源,從而保證其他的系統組件獲得足夠的硬件資源支持。

  當然,除了上面筆者所講到的幾項黑科技技術,MIUI 9還采用了關鍵場景響應加速、持續自動清理、異常排除機制、無線數據包加速等等黑科技,這裡就不一一展開了,下次有機會再找小米工程師來進行科普。總之在這些黑科技加持下,小米有底氣喊出『MIUI9快如閃電』的口號,並最終得到米粉和媒體的認可。

  死磕快體驗MIUI9昇級計劃按批次有序推進

  快如閃電的MIUI9還在路上。

  根據發布會公布的官方消息,MIUI9開發版對小米機型的適配,分為3個批次,第一批分別甄選了一個小米機型(小米6)和一個紅米機型(紅米Note4X高通版),及一部新手機(小米5X)。第二批為小米MIX、小米Note 2、小米5系列等熱門機型,第三批為眾多紅米和紅米Note系列機型。MIUI9穩定版昇級計劃以MIUI論壇公告和MIUI官方微博/微信為准。

  從機型適配的數量來看,MIUI9不亞於以往版本,甚至對於米粉期望比較低的小米2/2S都進行了適配。不過工程師告訴我們,下一代MIUI系統適配小米機型的數量肯定會減少,原計劃中小米2/2S是不在適配序列的。並且將來為了確保每個機型更爽快的系統體驗,還在討論以『24個月』為標准規劃MIUI新版本的昇級適配工作。

  據小米工程師介紹,今年的適配計劃確實與往年不太一樣。以往MIUI新版本發布,是摧枯拉朽式的對齊發布,快速昇級,快速普及。今年MIUI9穩紮穩打,主攻品質,主攻『快如閃電』,先在部分機型上驗證成功模式,再復制到其他機型上,確實需要一個過程。據稱2017年結束前工程師將會集中精力有序推進MIUI9對小米機型的適配工作。所謂『魚與熊掌不可兼得』,期待早日用上MIUI9的米粉要耐心等待咯。

  現在MIUI 9首批內測已經結束,8月11日也是MIUI9第一批開發版發布時間,小米6、小米5X、紅米Note 4X已經可以正式昇級MIUI9開發版。從過去一段時間來看,10萬米粉和主流媒體都給予了MIUI9高度評價,認可它的快如閃電。認可了發布會上MIUI負責人洪鋒所提的『MIUI 9也許是最快的安卓系統』的說法。

  隨著MIUI 9的不斷適配昇級,將會有更多人體驗到全新MIUI系統帶來的流暢體驗。筆者也希望看到更多手機廠商在操作系統的基礎體驗上更加用心和負責,讓國產手機的操作體驗再上新臺階。

下載前沿客戶端關注更多精彩

推薦新聞

我來說兩句

關於北方網 | 廣告服務 | 誠聘英纔 | 聯系我們 | 網站律師 | 設為首頁 | 關於小狼 | 違法和不良信息舉報電話:022-23602087 | 舉報郵箱:jubao@staff.enorth.cn | 舉報平臺

Copyright (C) 2000-2016 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本網站由天津北方網版權所有