安卓|安卓版“墓碑機制”火了,而隱藏在這背后的「矛與盾」才是關鍵

安卓|安卓版“墓碑機制”火了,而隱藏在這背后的「矛與盾」才是關鍵

文章圖片

安卓|安卓版“墓碑機制”火了,而隱藏在這背后的「矛與盾」才是關鍵

文章圖片

安卓|安卓版“墓碑機制”火了,而隱藏在這背后的「矛與盾」才是關鍵

文章圖片

安卓|安卓版“墓碑機制”火了,而隱藏在這背后的「矛與盾」才是關鍵

文章圖片

安卓|安卓版“墓碑機制”火了,而隱藏在這背后的「矛與盾」才是關鍵

文 | 小伊評科技
最近 , 關于安卓版「墓碑機制」的消息在數碼圈火了起來 。 用戶通過打開開發者模式 , 然后打開「暫停執行已緩存的應用」

①這里也先科普一下什么是「墓碑機制」 。

我們傳統印象中的多任務處理方式 , 就是Windows上的后臺 , 俗稱為“真后臺” 。

在這套體系下 , 后臺應用和前臺應有基本沒有本質的區別 , 只要配置足夠 , 消費者可以同時在內存中預留N個應用程序 , 因為電腦是一個有源輸入設備 , 不需要去考慮電池消耗的問題 。
但是手機這種移動設備就不一樣了 , 因為手機是一個需要依靠蓄電池維持能量輸入的設備 , 所以它不可能采用類似Windows的后臺管理策略 , 必須要建立起一套合理的退出機制 , 以此來保證設備的“持久性”也就是續航以及前臺應用的體驗 。
而所謂「墓碑機制」原本就是指IOS系統上的一種多任務的處理策略 。

解釋起來很復雜 , 簡單來講 , 在IOS平臺 , 手機的資源會優先向臺前且正在活躍的進程傾斜 , 而被用戶放在后臺的程序會被設定為非活躍狀態 , 非活躍狀態在經過一個恒定的時間之后(10分鐘) , 就會被設定為暫停狀態 。
在該狀態下 , 其后臺進程不會占用CPU的資源 , 只會占用內存容量 , 而當系統監測內存容量緊張的時候 , 該應用也會被殺掉 , 但是系統會將其所處的狀態保留在閃存當中(可以理解為虛擬內存) , 這就是“應用墓碑” , 下一次用戶在打開的時候 , 該狀態會被重新賦予 。
這就是蘋果的后臺處理機制 。 簡單來說 , IOS系統的硬件資源會全部供給給前臺應用 , 后臺應用的資源占用會被極大幅度的削減 。
而且這種機制是被系統限定死的 , 是蘋果主導的 。 應用廠商根本無力對抗 , 這一點我們后續會討論 , 大家先記著 , 我先標紅 。
②我們再來看看安卓的后臺機制 。

很多人認為安卓的后臺機制很混亂 , 其實不是 , 原生安卓系統的內存處理機制其實也是非常完善的 , 它同樣也會將進程分為很多個層次 , 有前臺進程 , 可見進程 , 二級進程 , 隱藏進程 , 內容提供器 , 空應用等狀態 , 這些狀態的優先級依次減弱 。
當系統檢測到內存不足的情況下 , 系統根據APP優先級的不同將應用進行分批的處理 , 以此來釋放內存 , 這也就是大名鼎鼎的LMK(Low Memory Killer)機制 , 這套邏輯本質上沒什么問題 。

換句話說 , 原生的安卓系統是等到系統判斷內存即將不足的情況下才會開始清理內存中的進程 , 而在被清理之前 , 后臺的程序會同時占用CPU資源和內存資源 。
這一點和IOS的后臺機制是有些不同 , 因為IOS系統上的后臺系統在10分鐘無操作之后 , 就不再需要消耗CPU資源 。 所以 , 相比較而言 , IOS的做法會更加的節省資源 , 也就會更加的省電 , 這就是為什么iPhone13到現在還敢用4G運存 , 電池容量明明那么小卻比安卓機器更耐用的原因 。
而這一次突然爆火的「暫停執行已緩存的應用」的效果是類似的 , 簡單來說就是讓放入后臺的程序不再占用CPU的資源 , 只是在內存中保留一個狀態了 , 以此來降低耗電量和CPU的壓力 。

相關經驗推薦