爲什麼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


轉自:http://www.williamlong.info/archives/2918.html

發佈了43 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章