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