為什么Android沒有iOS那么順滑

人文精神  >>>  技術話題—商業文明的嶄新時代

  雖然很多Android手機的配置都比iPhone要高,比如大多數Andorid手機的內存都有1GB,而iPhone 4S只有512MB內存,但用過iPhone的人都知道Android手機在使用的時候總感覺沒有那么順滑,究竟為什么會出現這種現象呢?一位軟件工程師和前Google實習生Andrew Munn解釋說是因為Android系統UI效率低下的框架設計的問題。

  不過,這個實習生Andrew Munn是一個軟件工程專業的本科畢業生,他在Android團隊并沒有在框架團隊工作,也沒有看過Android渲染的源代碼,因此他所說的未必是100%準確。并且他也曾經在Windows Phone團隊工作過,因此可能會不自覺的對Android產生偏見。以下就是他對Android為什么沒有iOS流暢體驗的看法。

Android平板電腦

  Android沒有iOS流暢的原因并非Java GC導致暫停,也不是因為Android運行的是Java編譯的bytecode而iOS運行的native code,根本的原因是,iOS的UI渲染采用實時優先級,而Android的UI渲染遵循傳統電腦模式的主線程普通優先級。

  這聽起來似乎很抽象和難以理解,但大家可以嘗試一下,使用你的iPad或者iPhone,打開Safari,然后加載一個復雜的網頁,例如新浪網首頁,當網頁加載到一半的時候,把你的手指放在屏幕上,并且四處移動,你會發現所有的渲染立刻停止,在你拿開手指前,網頁永遠也不會繼續加載。

  而在Android設備上重復這個操作,你會發現,瀏覽器會繼續嘗試加載頁面并渲染HTML,試圖多任務同時進行,因此對于Android來說,一個高效的雙核處理器是很重要的,這也就是Galaxy S II能夠非常平滑的原因。

  在iOS中UI渲染過程具有絕對的優先等級,當用戶接觸到iPhone的觸摸屏后,iOS中所有的進程都將停止,UI線程攔截了所有的事件,系統會將所有資源用于渲染UI過程,以保證用戶界面的實時渲染優先級。而在Android系統中UI渲染過程的優先級別卻沒有那么高,也就是說當你觸摸Android手機屏幕的時候,系統后臺的程序并沒有停止,仍然在繼續運行之中,比如下載和查收短信,這樣系統UI獲得的資源就不夠,這就是Android系統不流暢的原因。

  由于這個原因,新發布的Galaxy Nexus,甚至配備四核處理器的話說EeePad Transformer Prime平板電腦都無法保證順滑的操作體驗,這些設備只能與3年前的iPhone順滑程度相比,那么Android團隊為什么不從根本解決這個問題呢?

  除了UI渲染之外,Android缺乏有效的的硬件加速也是一個原因,在不同的Android手機上的硬件加速存在巨大差異,而蘋果是唯一一個既做硬件又做軟件的手持設備公司,只有蘋果可以在硬件中插入對軟件的優化,使得基于蘋果芯片的設備不僅省電,而且流暢。

  實際上,Android的開發工作在第一代iPhone發布之前就已經開始了,原始Android原型體被設計成為使用鍵盤手機的設備,也就是黑莓手機的競爭對手。UI渲染優先級別在有鍵盤的手機上并沒有那么重要。但是在iPhone發布之后,Android小組為了快速推出能與iPhone競爭的產品,迅速將Android改成觸摸屏手機系統,但那時重寫UI框架已經不可能了。因為如果這樣Android應用市場中的所有程序將變得不可用,這種關系將一直處于惡性循環之中。

  英文原文:Follow up to “Android graphics true facts”, or The Reason Android is Laggy

  參考閱讀:iPhone為什么比Android好

 


網載 2014-07-08 01:30:00

[新一篇] iPhone為什么比Android好

[舊一篇] Android的崛起和面臨的困境
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表