【Android 进程保活】Low Memory Killer 机制
文章目錄
- 一、Low Memory Killer 機制
- 二、Low Memory Killer 參數(shù)
一、Low Memory Killer 機制
Android 中有一套 Low Memory Killer 機制 , 應用退出后 , 其進程不會馬上被殺死 , 而是緩存起來 ;
如下圖所示 , 點擊回退鍵 , 使應用退出后 , 然后點擊 Menu 鍵 , 從任務棧列表中扔可以看到退出的應用 , 此時點擊該任務棧 , 仍可以將該應用拉起到前臺 ;
打開應用越多 , 后臺緩存的應用也就越多 ; 如果出現(xiàn)內存不足的情況 , 系統(tǒng)會根據(jù) Low Memory Killer 機制 判定哪些進程被回收 , 為新的進程提供充足的內存 ;
二、Low Memory Killer 參數(shù)
查看 Android 設備中的 Low Memory Killer 機制 相關參數(shù) ;
進入 Android 命令行 , 獲取 root 權限后 , 執(zhí)行如下代碼 :
cat /sys/module/lowmemorykiller/parameters/minfree執(zhí)行上述命令 , 可以看到該配置文件中配置了 666 個數(shù)值 , 其單位是 4KB\rm 4 KB4KB ,
C:\Users\octop>adb shell walleye:/ $ su walleye:/ # cat /sys/module/lowmemorykiller/parameters/minfree 18432,23040,27648,32256,55296,80640 walleye:/ #分析 /sys/module/lowmemorykiller/parameters/minfree 配置文件中的 666 個數(shù)值 , 單位 4KB\rm 4 KB4KB ;
18432,23040,27648,32256,55296,80640最后一個數(shù)字 806408064080640 , 乘以 4KB\rm 4KB4KB , 除以 102410241024 , 最后得到 ;
80640×4KB1024KB/MB=315MB\rm \cfrac{80640 \times 4KB}{1024 KB / MB} = 315 MB1024KB/MB80640×4KB?=315MB
該配置的含義是如果當前可用內存小于 315MB\rm 315 MB315MB , 就會將 空進程 殺掉 ;
內存不足時殺進程的優(yōu)先順序 :
- 18432 : 內存小于 18432×4KB\rm 18432 \times 4KB18432×4KB 時 , 殺 " 前臺進程 " ;
- 23040 : 內存小于 23040×4KB\rm 23040 \times 4KB23040×4KB 時 , 殺 " 可見進程 " ;
- 27648 : 內存小于 27648×4KB\rm 27648 \times 4KB27648×4KB 時 , 殺 " 服務進程進程 " ;
- 32256 : 內存小于 32256×4KB\rm 32256 \times 4KB32256×4KB 時 , 殺 " 后臺進程 " ;
- 55296 : 內存小于 55296×4KB\rm 55296 \times 4KB55296×4KB 時 , 殺 " ContentProvider 進程 " ;
- 80640 : 內存小于 80640×4KB\rm 80640 \times 4KB80640×4KB 時 , 殺 " 空進程 " ;
不同的手機中 , 對應的數(shù)值不同 , 越低端的手機 , 內存閾值越小 ;
如果可用內存低于上述的 666 個配置的內存數(shù)值 , 就會按照順序 , 依次向上逐步殺進程 ;
總結
以上是生活随笔為你收集整理的【Android 进程保活】Low Memory Killer 机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 进程保活】Androi
- 下一篇: 【Android 进程保活】oom_ad