5
本文作者: 六爺 | 2015-06-30 15:49 |
在《如果非要較真,Android的“底層”到底在哪?》一文中,雷鋒網(wǎng)編輯粗略介紹了真正意義上的Android底層所謂何物,同時也指出手機(jī)廠商在宣揚“底層優(yōu)化”時,在這方面的舉步維艱。
其實話說回來,無論手機(jī)廠商具不具備在Android最底層做優(yōu)化的能力,如果它們下定決心要改變用戶對Android手機(jī)卡、慢、熱的印象,很多優(yōu)化工作并沒有想象中那么“深”。
Android手機(jī)的卡、慢、發(fā)熱、死機(jī)是一個被簡化的事實,完整的描述應(yīng)該為:用過很長一段時間后,手上的iPhone還是那臺iPhone,而Android手機(jī)已經(jīng)“步履蹣跚”。
凡事都怕對比,Android手機(jī)的問題究竟出在哪里?魅族軟件工程師吳章金從兩個維度分析了成因。首先,當(dāng)手機(jī)硬件原地不動軟件不斷升級時原因如下:
1、手機(jī)存儲芯片隨著使用自然變慢;
2、硬件老化和各種跌落導(dǎo)致零件損壞;
3、器件和觸點老化導(dǎo)致手機(jī)能耗增加,發(fā)熱以后會觸發(fā)系統(tǒng)溫控,從而引起cpu降頻導(dǎo)致系統(tǒng)變慢;
4、新版本固件沒有相當(dāng)?shù)难邪l(fā)和測試投入,優(yōu)化不到位;
5、幾乎每一個版本都耗費更多的資源(更多的是內(nèi)存與flash)
必須說明的是,這些問題并非Android手機(jī)獨有,相信那些有iPhone 4情結(jié)的用戶對此應(yīng)該深有體會。當(dāng)然,Android手機(jī)特殊的地方在于它軟件升級的速度更快,各家ROM每周一更已是常態(tài)。
另一方面,即使有用戶深諳此道,買了手機(jī)之后再不更新固件,Android手機(jī)就能在使用中盡可能保持原貌嗎?答案是否定的,原因如下:
1、后臺軟件運行得越來越多,默認(rèn)負(fù)載不斷加大,空閑處理器資源減少;
2、后臺應(yīng)用的疊加,內(nèi)存耗費逐步增加,導(dǎo)致空閑內(nèi)存下降(新任務(wù)啟動甚至老的任務(wù)回到前臺需要內(nèi)存資源時可能需要觸發(fā)zram swap或者lowmemkiller,這些都會不可避免的帶來延遲,而一旦有持續(xù)的內(nèi)存泄露,甚至無法回收內(nèi)存而會導(dǎo)致系統(tǒng)最后崩潰);
3、當(dāng)后臺駐留應(yīng)用泛濫后,隨著內(nèi)存耗費的增加,內(nèi)存的碎片化會很嚴(yán)重(就是物理連續(xù)的內(nèi)存會越來越少,這會引起嚴(yán)重的IO性能衰退,可能會導(dǎo)致IO從順序操作轉(zhuǎn)變?yōu)殡S機(jī)操作);
4、應(yīng)用增多導(dǎo)致系統(tǒng)更容易發(fā)熱,觸發(fā)系統(tǒng)溫控,從而引起降頻等動作;
5、部分溫控技術(shù)引入了降fps(刷新率),這個會明顯影響用戶體驗感知(當(dāng)然這也無可厚非,平衡發(fā)熱和性能一直是硬件固化之后的必由之路)
從以上幾點可以看出,除了最后一條是手機(jī)廠商在平衡時有意取舍以外,大部分原因還出在不那么克制的第三方應(yīng)用。用LBE安全大師 CEO 張勇的話說:“這是個長期的貓和老鼠的游戲?!?/p>
眾所周知,Android給應(yīng)用開發(fā)者的權(quán)限非常大,允許自啟動,允許常駐后臺,允許自動聯(lián)網(wǎng),允許實時推送等等。不去揣測Google的設(shè)計初衷,從結(jié)果上看,這是套僅適用于烏托邦的游戲規(guī)則。
周鴻祎在接受媒體采訪時表示:“對入選的手機(jī)(應(yīng)用)我們會進(jìn)行技術(shù)評測,不能有BUG,必須要穩(wěn)定。他們(應(yīng)用)不能私自上傳用戶的數(shù)據(jù),不能背后偷偷聯(lián)網(wǎng),不能私自消耗用戶的流量,最重要的不能老是自己喚醒自己,在用戶不知情的情況下在后臺做很多的工作,最后手機(jī)的內(nèi)存都被這些稀奇古怪的應(yīng)用給用掉了?!?/p>
一席話直奔用戶痛點,可介于奇酷手機(jī)尚未上市,雷鋒網(wǎng)就這些問題采訪了曾在LBE做過類似工作的王明楊,他表示安全軟件只要通過Root,就能注入到目標(biāo)程序,從而動態(tài)修改它的權(quán)限和自啟動,目前防止第三方應(yīng)用“耍流氓”的很多方法都已經(jīng)成熟。
據(jù)張勇表示,手機(jī)廠商對應(yīng)用權(quán)限的優(yōu)化工作主要在系統(tǒng)框架層。而當(dāng)很多工作都已做到位之后,在手機(jī)的后臺管理上,“還是有很多灰色地帶,比如說手機(jī)百度調(diào)用百度地圖就可能是獲取位置信息,但是手機(jī)百度調(diào)用百度手機(jī)衛(wèi)士可能是拉活。它們從技術(shù)上講都是一樣的,只是實際用途不同,導(dǎo)致用戶不同的反應(yīng)。”
技術(shù)上無法區(qū)分,理論上就只能靠人工審核了,iOS就是這么做的。Android不可能這么做,原因是“這是兩個公司(Apple&Google)的設(shè)計哲學(xué)和思路不同導(dǎo)致的。”張勇說。
另外,除了自啟動和后臺管理以外,推送機(jī)制也是優(yōu)化的重點關(guān)照對象。由于某種原因,Google的Push通道在中國暫時無法使用,所以每一個可以為用戶實現(xiàn)“實時通知”的應(yīng)用,都必須各自保持“長連接慢心跳”的節(jié)奏。在這種情況下,即使撇開騷擾不談,這對智能手機(jī)薄弱的電量來說,簡直無法承受。
小米的安全總監(jiān)馬驥向雷鋒網(wǎng)編輯表示,在Google給Android加上定時喚醒之前,MIUI就做了這個優(yōu)化,就是“把每個應(yīng)用的喚醒行為hold住,統(tǒng)一到系統(tǒng)指定的時間點來執(zhí)行?!边@樣既不會因為簡單粗暴的關(guān)掉所有程序遺漏消息,也不會對電量造成太大的負(fù)擔(dān)。
Android手機(jī)廠商通過各種技術(shù)手段,在一定程度上的確能限制應(yīng)用對權(quán)限的濫用,可最終效果仍然很難向iOS看齊。原因很簡單:iOS不開放這些權(quán)限,Android反之,手機(jī)廠商的工作是酌情收回,“酌情”二字涵蓋了太多變量。
在談完某些優(yōu)化的細(xì)節(jié)之后,王明楊告訴雷鋒網(wǎng)編輯,其實Android和iOS差距的本質(zhì)還不在這些方面,“iOS的程序代碼直接跑在CPU上,而Android跑在虛擬機(jī)上,因此在同樣的硬件配置下,Android執(zhí)行同一件事情要比iOS耗費更多的資源?!彼栽谒磥恚嵘布鹊讓觾?yōu)化更靠譜一些,而實際上Android手機(jī)的硬件更迭速度的確要快很多。
有一件發(fā)生在某手機(jī)廠商的真實案例非常具有代表性:當(dāng)幾個軟件工程師埋頭苦干數(shù)月,終于將手機(jī)的性能優(yōu)化到令人滿意的水平時,元器件升級了,略微提升的硬件成本給手機(jī)帶來了更好的性能。這時候即使工程師們依舊篤定自己的工作是有價值的,領(lǐng)導(dǎo)層也會出于對投入產(chǎn)出比的衡量,來思考大力投入做這件事的必要性。
吳章金也表示:“就目前國內(nèi)的情況而言,蠻大的一部分廠商還只是停留在硬件功能的堆砌上。有一些廠商則投入資源做 UI 設(shè)計,硬件外觀和 ROM 的主題以及各種交互優(yōu)化。小部分(廠商)在艱難地做基本的穩(wěn)定性優(yōu)化,降低系統(tǒng)的死機(jī)、崩潰或者重啟概率等?!?/p>
在這些問題里,當(dāng)然不是每一個都能在有效期內(nèi)得到答案,因此“很多產(chǎn)品因為這些問題都難產(chǎn)了。有的產(chǎn)品停留在疲于奔命地解決各種死機(jī)重啟Bug,極少數(shù)在應(yīng)用諸如 RAS 這樣的系統(tǒng)化解決方案?!?/p>
無論采取怎樣的措施,現(xiàn)如今包括蘋果在內(nèi)的手機(jī)廠商明顯都加快了節(jié)奏,國內(nèi)某知名手機(jī)廠商在談到自身處境時更是表示,現(xiàn)在的競爭環(huán)境是“要么快,要么死”,所以很多優(yōu)化工作依舊跟不上被口號催生的需求。
唯一值得肯定的是,就目前一線水準(zhǔn)的Android手機(jī)而言,無論是對第三方應(yīng)用的管理還是自己對軟硬結(jié)合的理解都在日趨完善,它們與iPhone的差距也已經(jīng)遠(yuǎn)比人們印象中要縮小很多。只不過在馬太效應(yīng)持續(xù)升溫的今天,兌現(xiàn)“底層優(yōu)化”的承諾要比想象中更加緊急。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。