Ads 468x60px

##EasyReadMore##

04 3月, 2014

為何 Android 手機會 LAG

  • 為什麼 Android 的用戶體驗差?原因可能是 App 開發商的惡性競爭

Android App「綠色守護」的開發者 Oasis Feng 最近在接受《PingWest》採訪時就詳細解讀了 Android 系統背後的設計原理、應用開發商和 Android 設備體驗之間錯綜複雜的關係。

對 Android 系統稍有瞭解的使用者應該都聽說過 Android 系統支援多工,並且會在機身運存不足時主動結束一些後臺服務,以保證前臺服務的正常運行。

這樣看上去好像 Android 系統可以很好地解決軟體對硬體資源消耗的問題,但事實情況是,Android 的進程管理機制僅在開發商們都尊重公平遊戲的規則之下才有效,一旦有人想突破遊戲規則,那麼將不可避免地引發惡意競爭進而帶來設備體驗上的災難。

比如,微信在後臺運行時,會在其推送服務之外刻意保留一個特殊的服務,讓自己的進程存活的更久一些,以加速下次進入的速度。站在微信自己的角度而言,它當然可以說是提升了用戶體驗(也就是應用內體驗)。但當大量的應用都啟動不必要的後臺服務時,就會加速使用者手機記憶體的耗盡。

實際上最終仍然傷害了使用者的設備體驗(應用外體驗),而且是惡性循環的。這樣的例子並不只是微信,像百度系的若干應用用戶啟用一個就會喚醒其他的多個後臺服務,雖然這種行為是 Android 系統所允許的,但這並不是設計之初的本意,百度系應用這樣的行為對於低端 Android 設備來說絕對是災難。

  • 但 Google 的公平假設,反讓 Android 的系統機制加速了機體本身的衰減

此外,Android 系統在殺掉一個進程服務時,不但不會禁止這個服務再次在後臺自動喚醒,還會主動重啟它。

從這也可以看出 Google 真的是假設所有的開發者都是公平地參與遊戲、放在後臺的進程也都是必須的,所以當 Android 在系統資源不足殺掉某個進程後還會想辦法在資源足夠時重啟它。而事實情況又無法如 Google 所願:

記憶體吃緊時,CPU 被無謂的消耗在「殺掉服務→重啟服務→記憶體不足→再殺掉服務」的無盡迴圈中,因此也就造成了整機性能和電量的大幅度衰減。

所以 Oasis Feng 認為,Android 系統本身的機制設計在平臺的角度和絕對公平遊戲的情況下,是相對合理的,但是卻嚴重忽略了每個 App 本能的利己傾向,結果造成了低端設備上的嚴重問題。

從 Android 4.4 開始,Google 已經意識到這一點,但站在平臺的角度所能採取的措施相對有限,這也是為什麼 Oasis Feng 會開發綠色守護,其最重要功能就是讓 Android 設備和 iPhone 一樣,讓那些在後臺偷偷運行的應用休眠。

http://techorange.com/2014/03/03/the-bad-experience-behind-android-caused-by-developer/

0 意見:

張貼留言

 
Blogger Templates