優化 Android 底層,廠商越努力越糾結?

雷鋒網 於 30/06/2015 發表 收藏文章
《如果非要較真,Android的“底層”到底在哪?》一文中,雷鋒網記者粗略介紹了真正意義上的Android底層所謂何物,同時也指出手機廠商在宣揚“底層優化”時,在這方面的舉步維艱。

其實話説回來,無論手機廠商具不具備在Android最底層做優化的能力,如果它們下定決心要改變用户對Android手機卡、慢、熱的印象,很多優化工作並沒有想象中那麼“深”。


越用越卡的Android手機

Android手機的卡、慢、發熱、死機是一個被簡化的事實,完整的描述應該為:用過很長一段時間後,手上的iPhone還是那台iPhone,而Android手機已經“步履蹣跚”。

凡事都怕對比,Android手機的問題究竟出在哪裏?魅族軟件工程師吳章金從兩個維度分析了成因。首先,當手機硬件原地不動軟件不斷升級時原因如下:

引用1、手機存儲芯片隨着使用自然變慢;
2、硬件老化和各種跌落導致零件損壞;

3、器件和觸點老化導致手機能耗增加,發熱以後會觸發系統温控,從而引起cpu降頻導致系統變慢;

4、新版本固件沒有相當的研發和測試投入,優化不到位;

5、幾乎每一個版本都耗費更多的資源(更多的是內存與flash)

必須説明的是,這些問題並非Android手機獨有,相信那些有iPhone 4情結的用户對此應該深有體會。當然,Android手機特殊的地方在於它軟件升級的速度更快,各家ROM每週一更已是常態。

另一方面,即使有用户深諳此道,買了手機之後再不更新固件,Android手機就能在使用中儘可能保持原貌嗎?答案是否定的,原因如下:

引用1、後台軟件運行得越來越多,默認負載不斷加大,空閒處理器資源減少;

2、後台應用的疊加,內存耗費逐步增加,導致空閒內存下降(新任務啟動甚至老的任務回到前台需要內存資源時可能需要觸發zram swap或者lowmemkiller,這些都會不可避免的帶來延遲,而一旦有持續的內存泄露,甚至無法回收內存而會導致系統最後崩潰);

3、當後台駐留應用氾濫後,隨着內存耗費的增加,內存的碎片化會很嚴重(就是物理連續的內存會越來越少,這會引起嚴重的IO性能衰退,可能會導致IO從順序操作轉變為隨機操作);

4、應用增多導致系統更容易發熱,觸發系統温控,從而引起降頻等動作;

5、部分温控技術引入了降fps(刷新率),這個會明顯影響用户體驗感知(當然這也無可厚非,平衡發熱和性能一直是硬件固化之後的必由之路)

從以上幾點可以看出,除了最後一條是手機廠商在平衡時有意取捨以外,大部分原因還出在不那麼剋制的第三方應用。用LBE安全大師 CEO 張勇的話説:“這是個長期的貓和老鼠的遊戲。”


手機廠商與第三方應用的博弈

眾所周知,Android給應用開發者的權限非常大,允許自啟動,允許常駐後台,允許自動聯網,允許實時推送等等。不去揣測Google的設計初衷,從結果上看,這是套僅適用於烏托邦的遊戲規則。

周鴻禕在接受媒體採訪時表示:“對入選的手機(應用)我們會進行技術評測,不能有BUG,必須要穩定。他們(應用)不能私自上傳用户的數據,不能背後偷偷聯網,不能私自消耗用户的流量,最重要的不能老是自己喚醒自己,在用户不知情的情況下在後台做很多的工作,最後手機的內存都被這些稀奇古怪的應用給用掉了。”

一席話直奔用户痛點,可介於奇酷手機尚未上市,雷鋒網就這些問題採訪了曾在LBE做過類似工作的王明楊,他表示安全軟件只要通過Root,就能注入到目標程序,從而動態修改它的權限和自啟動,目前防止第三方應用“耍流氓”的很多方法都已經成熟。

據張勇表示,手機廠商對應用權限的優化工作主要在系統框架層。而當很多工作都已做到位之後,在手機的後台管理上,“還是有很多灰色地帶,比如説手機百度調用百度地圖就可能是獲取位置信息,但是手機百度調用百度手機衞士可能是拉活。它們從技術上講都是一樣的,只是實際用途不同,導致用户不同的反應。”

技術上無法區分,理論上就只能靠人工審核了,iOS就是這麼做的。Android不可能這麼做,原因是“這是兩個公司(Apple&Google)的設計哲學和思路不同導致的。”張勇説。

另外,除了自啟動和後台管理以外,推送機制也是優化的重點關照對象。由於某種原因,Google的Push通道在中國暫時無法使用,所以每一個可以為用户實現“實時通知”的應用,都必須各自保持“長連接慢心跳”的節奏。在這種情況下,即使撇開騷擾不談,這對智能手機薄弱的電量來説,簡直無法承受。

小米的安全總監馬驥向雷鋒網記者表示,在Google給Android加上定時喚醒之前,MIUI就做了這個優化,就是“把每個應用的喚醒行為hold住,統一到系統指定的時間點來執行。”這樣既不會因為簡單粗暴的關掉所有程序遺漏消息,也不會對電量造成太大的負擔。

Android手機廠商通過各種技術手段,在一定程度上的確能限制應用對權限的濫用,可最終效果仍然很難向iOS看齊。原因很簡單:iOS不開放這些權限,Android反之,手機廠商的工作是酌情收回,“酌情”二字涵蓋了太多變量。


“要麼快,要麼死”

在談完某些優化的細節之後,王明楊告訴雷鋒網記者,其實Android和iOS差距的本質還不在這些方面,“iOS的程序代碼直接跑在CPU上,而Android跑在虛擬機上,因此在同樣的硬件配置下,Android執行同一件事情要比iOS耗費更多的資源。”所以在他看來,提升硬件要比底層優化更靠譜一些,而實際上Android手機的硬件更迭速度的確要快很多。

有一件發生在某手機廠商的真實案例非常具有代表性:當幾個軟件工程師埋頭苦幹數月,終於將手機的性能優化到令人滿意的水平時,元器件升級了,略微提升的硬件成本給手機帶來了更好的性能。這時候即使工程師們依舊篤定自己的工作是有價值的,領導層也會出於對投入產出比的衡量,來思考大力投入做這件事的必要性。

吳章金也表示:“就目前國內的情況而言,蠻大的一部分廠商還只是停留在硬件功能的堆砌上。有一些廠商則投入資源做 UI 設計,硬件外觀和 ROM 的主題以及各種交互優化。小部分(廠商)在艱難地做基本的穩定性優化,降低系統的死機、崩潰或者重啟概率等。”

在這些問題裏,當然不是每一個都能在有效期內得到答案,因此“很多產品因為這些問題都難產了。有的產品停留在疲於奔命地解決各種死機重啟Bug,極少數在應用諸如 RAS 這樣的系統化解決方案。”

無論採取怎樣的措施,現如今包括蘋果在內的手機廠商明顯都加快了節奏,國內某知名手機廠商在談到自身處境時更是表示,現在的競爭環境是“要麼快,要麼死”,所以很多優化工作依舊跟不上被口號催生的需求。

唯一值得肯定的是,就目前一線水準的Android手機而言,無論是對第三方應用的管理還是自己對軟硬結合的理解都在日趨完善,它們與iPhone的差距也已經遠比人們印象中要縮小很多。只不過在馬太效應持續升温的今天,兑現“底層優化”的承諾要比想象中更加緊急。


資料來源:雷鋒網
標籤: Android  

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→