Android默認的進程管理策略
像上表描述的那樣,在默認策略中,當內存低于24MB(6144*4K)時,LMK就會殺掉所有oom_adj為15的進程(即空進程),這個警戒值可以人為修改,一般情況下也沒必要去改變它。為了更好的評估進程的重要性,Android將進程分為六類,如下所述:
前臺進程(foreground):oom_adj=0,指正在當前屏幕上顯示的進程和一些系統進程,一旦你回到主界面 或切換到其它程序,當前進程變為隱藏進程,前臺進程是不會殺掉的;
可見進程(visible):oom_adj=1,可見進程雖然不在前臺,但依然可見,如widget、輸入法等,這部分進程也非常重要,基本上不可能被殺掉;
次要服務(secondary server):oom_adj=2,目前正在運行的一些服務,如下載、播放音樂,它們雖然屬于次要服務,但與系統息息相關,一般也不會被殺掉;
隱藏進程(hidden):oom_adj=7,這個很容易理解,當應用從前臺轉入到后臺后,也就成為隱藏進程了,通常一鍵清理內存就是清掉這些隱藏進程;