一、安卓系統(tǒng)的生態(tài)環(huán)境
首先安卓是基于Linux開發(fā)出來的,而Linux正是一個開放系統(tǒng),因此安卓一直以來都有著較高的自主權(quán)限和可玩性,比如搞機人士可自己動手制作主題、更改系統(tǒng)設置、甚至刷機,但與此同時也給了不良APP可趁之機。
此外,在安卓系統(tǒng)中,應用程序的生命周期不是由應用本身直接控制的,而是由系統(tǒng)。當系統(tǒng)需要釋放內(nèi)存來運行新進程,或者保證某些后臺進程和前端進程執(zhí)行時,才會釋放某些應用程序的資源,而這個釋放過程也是按重要程序排序的——前端進程、可見進程、二級進程、隱藏進程、內(nèi)容提供器和空應用進程。所以當手機運行內(nèi)存緊張的時候,會按次要到重要的順序逐步終止,以保證最重要的優(yōu)先運行。這一套方案看似很科學合理,然而卻成為了流氓APP為所欲為的地方。
不守規(guī)則的APP一旦被啟動,它就會把自己注冊成最重要的狀態(tài)類型,因此就算系統(tǒng)再怎么控制也不會將它們從后臺終止。如此一來,如果眾流氓APP都這么干,那么你的手機很快就會爆滿,運行內(nèi)存和電量極速陷入危機。于是殺后臺工具就應運而生了,當時的流氓APP還比較簡單粗暴,只是通過注冊最高優(yōu)先度的操作,所以很容易被殺后臺的工具所清理。但好景不長,流氓APP對此進行了優(yōu)化,簡單的工具已經(jīng)無法處理它們。
二、流氓APP的灰色操作
除了注冊最高級之外,流氓APP還利用安卓系統(tǒng)的觸發(fā)喚醒機制進行胡亂喚醒。安卓系統(tǒng)中有一項設定,應用可通過某個事件來觸發(fā)特定動作,比如連上WiFi可更新數(shù)據(jù);點亮屏幕可觸發(fā)最新消息推送。原本這一設定能帶來極大的便利,但是被流氓APP利用之后就變成一觸發(fā),整個APP就在后臺迅速啟動、占用資源。在這種不斷點亮、不斷啟動的情況下,簡單的殺后臺工具就無法一一處理了。
對此,Google在安卓6.0中引入過Doze的APP休眠機制,可是這種為了防止流氓APP而使手機全部處于無操作的狀態(tài),對于長期用機的用戶來說依然是效果有限。
另外流氓APP還有一個特色就是相互喚醒,當你開啟了某個應用,很多鏈接APP就都會被一起喚醒、狂占內(nèi)存。而除了“同伙”的幫忙,自己的“生命線”也尤為重要,一個APP注冊N個進程,就算一個被終止還有其他的進行喚醒。
三、各方的努力應對
除了上述說到的Google在安卓6.0引入的休眠機制外,最新8.0就推出了嚴格的后臺管控機制,強制停用一些不常用的后臺APP。此外還有開發(fā)者的Android綠色應用公約,倡導綠色規(guī)范的應用,還安卓健康的生態(tài)環(huán)境。而在安卓系統(tǒng)卡慢的問題上,華為也做出了自己的努力。
例如華為Mate8的麒麟950,其內(nèi)存吞吐就是利用智能Boost調(diào)度算法讓后臺自啟動管理,從而對應用間的相互喚醒進行管控,例如對相互喚醒的全家桶軟件就是很好的打擊。此外HUAWEI Ultra Memory技術(shù)能根據(jù)應用優(yōu)先級進行后臺內(nèi)存壓縮,為重要應用釋放空間。
四、總結(jié)
因此在針對流氓APP導致的安卓生態(tài)問題上,這是每個廠商和用戶都切身關(guān)注的問題。除了Google官方的應對和手機廠商的努力外,花部長更希望能有越來越多的應用共同遵守規(guī)則,一起改良安卓生態(tài),而不是為了不正當?shù)睦婧驼加新石偪駬p益用戶體驗,走上不可持續(xù)發(fā)展的道路。