天天看點

再見!卡頓的安卓手機

作者:李直人

再見!卡頓的安卓手機

安卓系統最大的問題,就是系統卡頓。

一部手機,尤其是被用過一年之後,往往會變得越來越卡,卡到APP半天打不開;卡到好不容易打開APP,操作兩下又當機了;卡到要經常重新開機才能緩解卡頓;卡到手機發燙,讓人時刻擔心手機會爆炸……

再見!卡頓的安卓手機

有時候卡起來,真能急死人。

卡頓問題人神共憤,消費者受不了,手機廠商也愁到頭大。為了解決卡頓問題,安卓手機廠商們使出了渾身解數,一方面不斷加大手機運作記憶體——2GB、4GB、8GB、12GB;另一方面,對于頻繁自啟動的部分應用,采用了“殺背景”的處理方式,以此減少記憶體占用。

應用開發者當然不想自己軟體的背景程序被無端“殺掉”,有的會利用安卓的懸浮窗機制,在使用者關閉應用時縮小到某個角落,以此保持線上程序;還有的會抱團取暖,利用安卓的“廣播接收器”鍊式觸發背景自啟動。

再見!卡頓的安卓手機

廣播接收器是系統響應應用需求的一種機制。

另外,手機廠商往往自己還有一些預裝的APP,會提前設定在系統白名單裡,防止被殺背景。這就是安卓手機記憶體越做越大卻依然越來越卡的原因。

這種僵局,隻能使得手機廠商更加激進地實行殺背景政策,但這就導緻一些使用者使用軟體的程序會被惡意中斷。

我們常常能遇到如下場景——

當你正在打着一盤遊戲,這時上司在工作群發通知,你趕緊點開群回複“收到”,結果傳回後發現遊戲被殺背景了,要重新進入,此時你的心情必如一片荒原,荒原之上是一萬頭羊駝在奔騰,前方則是一道深淵,深淵的底部赫然寫着一行大字——“換手機吧”。

再見!卡頓的安卓手機

想象一下,遊戲到緊要關頭,結果因為回複一條資訊就被殺背景……

當你安裝了一款睡眠監測APP,想監測一下自己的睡眠品質、知道自己晚上夢話說了什麼,結果第二天起床一看,因為息屏,監測APP被殺背景了,啥也沒監測到。

如果說上述需求屬于“不痛不癢”的量級,算得上還可以忍受,那麼對于視力障礙者來說,就是忍無可忍了。據雷科技報道,2018年就有開發者吐槽說,自己開發的無障礙應用經常被系統無端殺背景,而這些應用原本需要在背景靜默運作,才能幫助視障者讀屏操作手機。

再見!卡頓的安卓手機

無障礙應用都被殺背景,這讓視障者如何是好?

與安卓相對,蘋果的處理方式幹脆利索,因為蘋果壓根就沒有“背景”,是以自然也不會存在背景應用過多導緻系統卡頓的問題。

沒有背景的蘋果,又是如何做到多應用切換時能調取離開應用前的界面呢?這就是蘋果“墓碑”機制的作用,蘋果在應用被切換之前會截取留存切換時的頁面,在使用者傳回時還原到原有界面即可。雖然真實過程比這個複雜得多,但基本原理大緻如此。

安卓原本就是基于Linux系統改造的多背景處理系統,如果引入“墓碑”機制會有許多技術難題。但作為安卓的開發者,谷歌自然也不會坐看安卓如此堕落。

5月11日,谷歌将會舉行“I/O大會”,屆時谷歌将會釋出最新版作業系統Android 13。據XDA報道,谷歌為Android 13核心添加了一段與記憶體、多任務優化有關的代碼,主要涉及MGLRU(Multi-Generational Least Recently Used),即多頁面回收政策。

再見!卡頓的安卓手機

MGLRU已經在Chrome OS上測試過,現在要應用到Android 13。

根據谷歌測試,借助MGLRU,kswapd CPU使用率降低了40%(kswapd是管理虛拟記憶體的程序)。此外,在75%記憶體占用時減少了85%的背景誤殺情況,在50%的記憶體占用時降低了18%的渲染延遲。

也就是說,MGLRU将同時解決殺背景和系統卡頓兩大關鍵問題,有利于提高系統流暢性的同時增強應用的背景體驗。

看來,安卓手機也要像蘋果手機一樣快到飛起了,你期待嗎?

繼續閱讀