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