為什麼安卓機沒有iPhone流暢?

xiaohei5188發表於2015-02-27

【原文:http://tech.qq.com/a/20150226/009105.htm】


[摘要]Android沒有iOS流暢的根本的原因是,iOS的UI渲染採用實時優先順序,而Android的UI渲染遵循傳統電腦模式的主執行緒普通優先順序。

[科技不怕問]為什麼安卓機沒有iPhone流暢?

網友“foto茄”:

為什麼iPhone 6記憶體僅有1GB,而很多安卓機配置相當高了,還是覺得iPhone流暢一些?

騰訊科技:

相信很多網友都有類似疑問,感覺安卓手機在流暢度上不如iPhone手機。先不說一些配置低的安卓機,即便是最新版安卓系統的旗艦手機,也會感覺達不到iPhone手機的那種流暢度,因此有人以此判斷安卓手機不好。

其實,這都是二者系統機制不同導致的差異。

渲染機制不同

Android沒有iOS流暢的根本的原因是,iOS的UI渲染採用實時優先順序,而Android的UI渲染遵循傳統電腦模式的主執行緒普通優先順序。

通俗點說就是iOS對螢幕反應的優先順序最高,使用者只要觸控螢幕,系統就會最優先處理螢幕顯示這個層級,馬上給出動畫效果,然後才處理媒體、服務、核心的架構。

而安卓則是追求程式優先,觸控螢幕後的手機螢幕顯示和動畫效果放在比較後的優先順序。同樣開啟相同的網頁,Android手機就會直接將整個網頁全部載入同時渲染HTML,這無疑就增加了處理器的壓力。因此對於Android來說,一個高效的雙核處理器是很重要的。

在iOS中UI渲染過程具有絕對的優先等級,當使用者接觸到iPhone的觸控式螢幕後,iOS中所有的程式都將停止,UI執行緒攔截了所有的事件,系統會將所有資源用於渲染UI過程,以保證使用者介面的實時渲染優先順序。

而在Android系統中UI渲染過程的優先順序別卻沒有那麼高,也就是說當你觸控Android手機螢幕的時候,系統後臺的程式並沒有停止,仍然在繼續執行之中,比如下載和查收簡訊,這樣系統UI獲得的資源就不夠,這就是Android系統不流暢的原因。

後臺機制不同

安卓手機的後臺是真後臺,像PC一樣,將應用保留在RAM中,當使用HOME鍵退出應用時,程式實際上並沒有完全退出,而是被系統掛在了後臺,為何我們關掉了聊天軟體依然能夠收到訊息通知,因為它常駐系統記憶體。包括平時收到的一些垃圾廣告推送,也是因為後臺有程式執行。

所以這就導致了一個現象,從記憶體使用上來看,安卓剛開機時記憶體使用很低,若不進行清理記憶體操作,正常使用一天,記憶體佔用會達到75%以上。而記憶體佔用越高,使用起來流暢度就會越低,所以安卓機器需要更大的RAM來提升使用者體驗。

而iOS呢,其實是採用的偽後臺,當使用者HOME鍵退出應用時,iOS其實關閉了程式,只保留應用的影象入口,只會預設將應用的最後的執行資料記錄在RAM中。

之所以iOS也能收到推送,是因為當使用者從應用中選擇開啟推送之後,系統會增加一些程式,這些程式會從蘋果伺服器接收資訊,然後再通過伺服器發給使用者,蘋果伺服器在這裡是起到了中轉的作用。而正是因為有了這一系列的機制,所以即便iPhone的配置相比於同類安卓機低了很多,但是iOS還是會給人更加流暢的感覺。

iPhone執行程式的效率比安卓機高

另外,安卓系統的程式語言是Java,特點是通用性強,效率低。而iOS的則為Objective-C,專一性強,效率高。

iOS系統本身優化得很好,而且程式也是直接執行,所以效率很高。而安卓系統是通過Java虛擬機器來執行,系統需要佔用大量記憶體來換取執行速度,也就是要繞了個大圈才執行程式,所以效率低很多。

廠商喜歡給iPhone做優化

由於iOS的封閉性,App Store裡面的App都是在iPhone等產品上執行,硬體利用效率非常高,而且解析度大小,硬體的更新等等引數也比較穩定,優化工作也容易進行,因而iPhone上的App和硬體結合程度比安卓高很多。

安卓手機的硬體配置一樣天天變,開發者也不可能針對所有的機器型號進行開發,只能在比較主流的機器上進行測試並保證執行流暢,所以很多國產中低端安卓手機很難得到流暢的使用體驗。


相關文章