Skip to content

一問易答:為何安卓手機沒有iPhone流暢

  一問易答:為何安卓手機沒有iPhone流暢

  網易江蘇省手機網友【專屬你的王】在一問易答中問:

  小便為何配置相近的手機在Android和WP下玩同樣的手機,Android沒有WP流暢?小便求給上榜!!!

  說上榜就上榜,開心咩?很多人都會覺得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手機吃硬件,這也算是個歷史遺留問題瞭,何時能夠解決,如何解決,我們隻能耐心等待瞭。