搜尋本站文章

2011年12月13日 星期二

為什麼 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 沒有 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

===============================================
創用 CC 授權條款
Related Posts Plugin for WordPress, Blogger...

沒有留言:

張貼留言

1、本留言處歡迎多加留言交流,但不歡迎垃圾留言及廣告留言
2、留言時可以使用部份 HTML 標記
3、對於教學文章介紹或軟體使用有問題歡迎提出,若站長沒回應表示不清楚該問題的解決方案
4、留言時請勿留下電子郵件,以免因搜尋引擎爬文而造成您的困擾,且站長不會寄相關郵件給您,僅會在留言區提供解決方案
5.站長保留不當刪除留言的權力,若造成不便尚請見諒