安卓4.4 KitKat號稱最少只需512MB系統內存即可流暢運行,某種程度上卻是也做到了,相比之前的多次空口許諾著實令人驚喜,那麼,Google是如何做到的呢?說來很有趣。
發展至今,安卓系統在功能特性上已經很成熟了,Google也開始在4.x時代轉向其他方面。Jelly Bean 4.1的時候,Google提出了“黃油工程”(Project Butter),目的是讓安卓系統速度更快、更加可靠、減少崩潰。
完成這一階段性目標後,Google又提出了新的“苗條工程”(Project Svelte),力圖減少安卓的內存占用率,保證任何廠商的手機只要有512MB內存就能執行任何功能特性,而不必局限在古老的Gingerbread 2.3系統,最終成果就是KitKat 4.4。
安卓首席工程師Dave Burke開玩笑地說:“我首先做的工作是‘黃油工程’,讓系統更加流暢。問題是,黃油是有重量的。接下來,‘苗條工程’就是要減肥。所以呢,迄今為止我對安卓的貢獻基本上是零。”
那麼,這個減法如何做到的呢?還得感謝Nexus 4。
Burke透露說:“‘苗條工程’的基本目標就是將內存需求降低到512MB。我們如何做到的呢?就是拿一部Nexus 4,讓它運行在512MB上(原本是2GB)。”
接下來就是讓KitKat運行在更低的分辨率,以及兩個處理器核心上。為了讓工程師們有更加身臨其境的體驗,他們都被迫使用精簡版的Nexus 4,內存、分辨率、處理器核心和頻率都被大大降低。
Burke說:“我們選擇了qHD分辨率,也就是960×540,因為這是入門級智能手機的甜點。我們將處理器核心從四個降到兩個。我們降低了運行頻率,以及諸如此類的東西。這麼說吧,我們一幫人都用著殘廢的手機。這很痛苦。”
這時候,Google的目標有四個:
1、精簡系統體積。
2、降低Google Experience設備(也就是Nexus系列)上應用的內存占用。
3、修正內存較少時的應用交互、崩潰。
4、更好地監測應用的運行狀態,使開發者可以更好地掌控應用的內存占用。——這被稱為“ProcStats”(進程狀態),是開發模式中的一個功能。
前兩個就是借助那部殘廢版的Nexus 4完成的,而後兩個讓安卓可以更好地監視、處理應用的內存使用,比如一旦發現誰長時間使用大量內存,系統就會自動關閉它。
最終,安卓4.4實現了瘦身,可以在低配置平台上運行得更流暢,而且不但不會損失功能特性,還增加了不少新東西。
當然了,要注意第二條的前提,那就是僅限Nexus設備。換句話說,對於第三方安卓設備,Google仍舊是基本上無能為力的,特別是那些預裝了大量應用的,安卓自己再怎麼努力都是白費。