很多人都會覺得Android手機沒有WP手機和iPhone手機流暢,不用說配置較低的產品,即便是配置最高,采用最新版Android系統的旗艦手機,也總是會讓人感覺達不到配置較低的WP手機和iPhone手機那樣的流暢度,所以有人以此判斷安卓手機不好。事實上,這只不過是系統方面的一些機制導致的差異,畢竟我們講體驗,並不是單純的去看手機的流暢度的,還要綜合一些細節去全面的對比。有點扯遠了,說回正題吧,那麼是什麼樣的差異導致了Android手機的流暢性略輸於WP手機和iPhone手機呢?其實無非是兩大機制的不同造成的:後台機制和渲染機制。
後台機制方面的區別
提到後台,大家應該會很容易想到安卓的真後台了吧,所謂真後台,就是像PC一樣,將應用保留在RAM中,當你使用HOME鍵退出應用,程序實際上並沒有完全退出,而是被系統掛在了後台,比如一些聊天軟件,之所以關閉後依然能夠收到推送,就是因為其常駐系統內存,能夠在後台接收到通知,當然,我們平時總能夠收到一些垃圾廣告的推送,也是因為後台有程序運行。而正是因為有了這樣的機制,就導致了一個現象,那就是從內存使用上來看,剛開機的時候內存使用很低,如果不進行清理內存的操作,正常使用一天,內存占用會達到75%以上。而內存占用越高,使用起來流暢度就會越低,所以安卓機器需要更大的RAM來提升用戶體驗。
而iOS方面,與安卓不同的是,其采用的是偽後台,當程序進入後台會自動變為休眠狀態。當你雙擊Home鍵呼出多任務管理界面時,你會發現所有的應用卡牌都處於停止狀態,iPhone只會默認將應用的最後的運行數據記錄在RAM中,而之所以iOS也能夠收到推送,是因為當你從應用中選擇開啟推送之後,系統會增加一些進程,這些進程會從蘋果服務器接收信息,然後再通過服務器發給你,蘋果服務器在這裡是起到了中轉的作用。而正是因為有了這一系列的機制,所以即便iPhone的配置相比於同類安卓機低了很多,但是iOS還是會給人更加流暢的感覺。
同iOS一樣,WP系統同樣采用的是偽後台,也叫做墓碑機制。相比於iOS的後台,WP的後台更加吝啬,永遠只能運行一個應用,有人說WP8.1後,WP有了全新的真後台機制,變得不再偽了,可以支持後台上傳、後台播放雙進程等等,其實這同iOS的後台推送機制相類似,不過是WP對後台進程多做了些優化罷了,正是因為系統對後台進程的嚴格把控,所以我們看到即便是有著很低內存的WP手機,在使用時也是非常流暢的。
渲染機制的差異
說過了後台的機制,我們再來說下渲染機制,這一方面也是決定手機流暢度的重要因素,WP系統和iOS系統的UI渲染都采用了實時優先級,而Android的UI渲染則遵循了傳統電腦模式的主線程普通優先級,說白了就是前兩者追求的是主屏幕顯示優先,比如在加載一個復雜網頁時,WP系統和iOS系統都會優先加載主屏幕的顯示區域,而Android系統則追求了進程優先,同樣打開相同的網頁,Android手機就會直接將整個網頁全部加載同時渲染HTML,這無疑就增加了處理器的壓力。
而在其他程序中,用戶在使用時其實就能夠感覺到,當用戶接觸到WP手機和iPhone手機的屏幕後,UI線程會攔截所有的事件,系統會將所有資源用於渲染UI的過程中,以保證用戶界面的實時渲染優先級。而在Android系統中UI渲染過程的優先級別卻沒有那麼高,也就是說當你觸摸Android手機屏幕的時候,系統後台的程序並沒有停止,仍然在繼續運行之中,比如後台下載,這樣系統UI獲得的資源就不夠,這就是Android系統不流暢的原因。
那麼為什麼很多配置相當恐怖的安卓機同樣會出現不流暢的情況呢?這就涉及到硬件加速的問題了,對於安卓機來說,硬件加速的資源很容易被安卓的渲染機制吃光。光是打開系統內置的“所有應用”的視圖,就需要繪制許多不同的窗口,系統會默認對所有像素繪制一次背景,至少需要對一半的像素繪制一次 shortcut 和 widget 層,至少需要對一半的像素繪制一次圖標和標簽,也需要對所有像素繪制一次“所有應用”視圖的黑色背景,還有“所有應用”視圖的圖標和標簽。而說了這麼多,這還不包括對這些窗口做最後的組合,系統基本上就把GPU的資源吃光了。當然,安卓對這個機制也有優化,比如把壁紙做成一個比屏幕大的窗口,這樣在主屏滾屏時就不需要重繪,只要移動窗口就行。而這個繪制好了的窗口,就不需要額外的GPU計算量了,但這也不能從根本上解決問題,綜合來看,Android手機就是要比WP手機和iPhone手機吃硬件,這也算是個歷史遺留問題了,何時能夠解決,如何解決,我們只能耐心等待了。