愛伊米

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

so。csdn。net/so/search?q=%E5%86%85%E5%AD%98&spm=1001。2101。3001。7020“},”nodes“:[{”type“:”text“,”id“:”3b1F-1652851862391“,”leaves“:[{”text“:”“,”marks“:[]}]}]},{”type“:”text“,”id“:”RVMd-1652851862393“,”leaves“:[{”text“:”達到一定閾值時,要移除掉最近最少使用的資料。“,”marks“:[]}]}],”state“:{}},{”type“:”block“,”id“:”anTE-1652864682012“,”name“:”paragraph“,”data“:{},”nodes“:[{”type“:”text“,”id“:”w6hP-1652864682011“,”leaves“:[{”text“:”LRU演算法的邏輯用在智慧手機上可能並不合適,應用被使用者掛在後臺時間的早晚和使用者的使用頻率沒有關係。故而,谷歌MGLRU的策略是將Android後臺應用分為幾組,每一組都是由上一組被使用的後臺應用組成,透過差分掃描來標記為時間上存在較長的後臺應用,並最終計算出可以安全關閉的應用。根據谷歌的說法,“,”marks“:[]},{”text“:”MGLRU實現了“,”marks“:[{”type“:”fontSize“,”value“:18}]},{”text“:”在75%記憶體佔用時減少了85%的後臺誤殺情況。“,”marks“:[{”type“:”color“,”value“:”#121212“},{”type“:”backgroundColor“,”value“:”rgb(255, 255, 255)“},{”type“:”fontSize“,”value“:18}]}]}],”state“:{}},{”type“:”block“,”id“:”hcpf-1652865014209“,”name“:”paragraph“,”data“:{},”nodes“:[{”type“:”text“,”id“:”1liX-1652865014207“,”leaves“:[{”text“:”然而,“,”marks“:[]},{”text“:”MGLRU能夠起到的效果有多大,會不會改變手機廠商的殺後臺政策,我們持有的是悲觀的態度。Android的真後臺機制就代表了,殺後臺的強度越高,手機處於低負載的時間就越多,使用者感覺使用流暢的時間就越長。更重要的一點就是,應用被殺後臺並不會影響到手機廠商的利益,反正有白名單機制存在,真正的利益相關方早就被保護起來。只要手機廠商不再搞出強制關閉“,”marks“:[{”type“:”fontSize“,”value“:18}]},{”text“:”AccessibilityService服務,這種違反谷歌條款的操作,谷歌其實是管不了廠商們第三方ROM是不是會應用“,”marks“:[{”type“:”color“,”value“:”#262626“},{”type“:”backgroundColor“,”value“:”rgb(255, 255, 255)“},{”type“:”fontFamily“,”value“:”Arial“},{”type“:”fontSize“,”value“:18}]},{”text“:”MGLRU的。“,”marks“:[{”type“:”fontSize“,”value“:18}]}]}],”state“:{}},{”type“:”block“,”id“:”uILg-1652865304567“,”name“:”paragraph“,”data“:{},”nodes“:[{”type“:”text“,”id“:”aLk0-1652865304566“,”leaves“:[{”text“:”“,”marks“:[{”type“:”fontSize“,”value“:18}]}]}],”state“:{}}]”>

如今Android手機似乎正在陷入一個怪圈,儘管記憶體變得越來越大,使得12GB記憶體逐漸普及、18GB記憶體也已出現,甚至於出現了虛擬記憶體技術,然而各大手機廠商的系統則在以更強的力度“殺後臺”。為此,在收到了越來越多開發者的投訴後,此前在2021年6月谷歌釋出了相關問卷,調查Android手機的“殺後臺”問題。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

在一年後舉行的2022 I/O開發者大會上,谷歌方面再度表示正在努力從多個角度嘗試解決“殺後臺”的問題,並透露Android 13的AOSP原始碼中添加了對MGLRU(多頁面回收策略)的支援,而藉助MGLRU,在75%記憶體佔用時減少了85%的後臺誤殺情況。

早在2018年時,谷歌方面就收到了開發者關於OEM廠商隨意殺後臺的投訴,當時在AOSP上就已有開發者提交了OEM廠商濫用Android核心許可權、施行嚴苛後臺管控機制的文件。到了Android 11,谷歌在與海外網友交流時也曾強調,會遏制手機廠商隨意殺後臺的行為。

曾幾何時,“殺後臺”對於Android使用者來說是一個非常正面的詞彙,有的Android使用者會選擇用ROOT後安裝綠色守護等應用的方式,來實現更好的後臺管理,而具備自動清理後臺應用的功能也更是成為當時Android手機的標配。那麼為什麼遏制“殺後臺”會在Android 13中,成為谷歌方面宣稱的新功能呢?

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

其實,這是因為矯枉過正。在SoC功耗水平大幅度增長、5G基帶成為耗電大戶的情況下,智慧手機機身尺寸增長有極限、且消費者更加青睞輕薄的設計,都造成了手機廠商對於續航的極度關注,而強制關閉駐留在後臺的應用,來節約系統資源就成為了手機廠商提升效能與續航的法寶。

事實上,手機廠商也很無奈,如果允許應用長時間駐留後臺,就意味著功耗與效能開銷變大,此時使用者感知的結果,就是續航不夠,總是需要頻繁地充電、而且還可能會卡頓。

一旦手機給使用者帶來這種負反饋,也意味著產品口碑的下降,這在當下這個市場競爭已經極為充分的情況下無疑是不可接受的。所以不僅僅是國內手機廠商,就連海外廠商也在“殺後臺”這件事上一個賽一個嚴苛,甚至到了去年6月,有使用者發現某些OEM甚至強制關閉了無障礙服務AccessibilityService。

但實事求是的講,這“鍋”手機廠商最多隻能佔三分之一,另外三分之一則是谷歌在設計Android時埋下的伏筆。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

眾所周知,谷歌為Android設計的記憶體回收機制,是隻有當系統回收了所有的快取後,發現依然不足以提供足夠的記憶體來維持系統和應用的流暢執行後,才會開始根據開啟順序強制關閉部分應用,將其所佔用的記憶體回收。與此同時,Android系統採用的後臺機制與iOS的“墓碑機制”不同,iOS是偽多工、而Android則是“真後臺”。

Android的這項設計也就意味著,開啟的應用越少系統的負載就越低,使用者的使用就越流暢。而Android與Windows儘管同為多工作業系統,但手機的螢幕顯然要遠小於PC,這就使得使用者同一時間最多隻會使用一兩個應用,此時更多的應用就必然要被放在後臺。

面對這一現實,手機廠商的解決方案就是將後臺殺乾淨,然後用LPDDR5記憶體、UFS 3。1儲存晶片等硬體升級,來降低使用者啟動應用的等待時間,達到與應用駐留後臺近似的效果。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

“殺後臺”策略發展到現在,就出現了手機廠商遇到將“白名單”之外其他應用被移到後臺時乾脆就直接將其關閉,讓系統獲得最好的狀態,這也是當初Android手機“遊戲模式”的理論基礎。但問題是,手機廠商“殺後臺”的策略儘管把使用者服務周到了,卻全然不顧開發者的利益。

開發者需要應用駐留後臺,其實主要是為了“保活”。應用為了接受後臺訊息就需要自行駐留程序,以隨時接收訊息的推送,不然使用者就會出現總是收不到訊息的情況,使得體驗極為糟糕。例如有的應用在後臺掛著掛著就沒了,逼得使用者只能一遍又一遍地看APP的啟動頁廣告。久而久之,被迫頻繁看廣告的使用者自然就不幹了,所以也就有了工信部因“使用者反映強烈投訴較多”而對開屏廣告進行治理。而損失了部分廣告收入的開發者自然也會向谷歌方面投訴,要後者管一管手機廠商無腦殺後臺的操作。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

當然,“殺後臺”之風愈演愈烈,最後三分之一的原因其實是出在開發者自己身上。由於Android生態的自由開放,在Android 8之前,使用者當時頭疼的並不是後臺應用被關閉、而是後臺“殺不盡”,彼時許多應用為了保活可謂是各出奇招,選擇用鏈式喚醒、隨意快取、強制自啟等方式紮根在後臺,直接導致Android背上了“卡頓”的名聲。

一句話,開發者和OEM廠商圍繞著“殺後臺”的矛盾,直接原因就是雙方的利益不一致,而且兩者之間很難形成利益共同體,少數形成利益共同體的應用也早就進入了手機廠商的白名單。沒錯,“殺後臺”之所以讓普通使用者感知不明顯,就是因為微信、QQ、微博、抖音、淘寶等日常開啟頻率較高的應用,幾乎個個都是手機廠商“白名單”的常客。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

國內的Android開發者長期以來在開發應用時,首先需要思考的問題,就是“我的應用能像微信那樣一直在手機執行嗎?為什麼微信一直在手機後臺就能收到訊息”。畢竟不患寡而患不均,作為普通的Android開發者自然就會向谷歌方面投訴,不然就是永遠都無法在巨頭環伺下出頭。

那麼問題來了,谷歌在Android 13上推出的MGLRU(Multi-Generational Least Recently Used),真能改變手機廠商這種頻繁“殺後臺”的現狀嗎?從技術角度來看,谷歌方面是很有信心的。因為MGLRU是傳統記憶體管理演算法LRU(快取淘汰)的升級版,而LRU則是基於這樣的一種假設,即使用者長期不被使用的資料在未來被用到的機率也不大,所以當資料所佔記憶體達到一定閾值時,會移除掉最近最少使用的資料。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

但LRU演算法的邏輯用在智慧手機上可能並不適用,畢竟應用被使用者掛在後臺時間的早晚與使用頻率並沒有太多關係。所以MGLRU的策略是將Android後臺應用分為幾組,每一組都是由上一組被使用的後臺應用組成,透過差分掃描來標記時間上存在較長的後臺應用,並最終計算出可以安全關閉的應用。根據谷歌方面的說法,MGLRU實現了在75%記憶體佔用時減少了85%的後臺誤殺情況。

然而MGLRU能夠起到的效果有多大,會不會改變手機廠商目前殺後臺政策,我們所持有的是相對悲觀的態度。畢竟Android的真後臺機制就代表著,殺後臺的強度越高手機處於低負載的時間就會越多,使用者感覺使用流暢的時間就越長。並且更為重要的一點是,應用被殺後臺並不會影響到手機廠商的利益,反正有白名單機制存在,真正的利益相關方早就被保護起來了。

安卓13要遏制“殺後臺”,谷歌能管得住手機廠商嗎

因此在我們看來,或許只要手機廠商不再搞出強制關閉AccessibilityService服務這種違反相關條款的操作,谷歌其實是管不了手機廠商第三方ROM是不是會應用MGLRU這件事的。