【Android 进程保活】Android 进程优先级 ( 前台进程 | 可见进程 | 服务进程 | 后台进程 | 空进程 )
文章目錄
- 一、Android 進程優(yōu)先級
- 二、前臺進程
- 三、可見進程
- 四、服務(wù)進程
- 五、后臺進程
- 六、空進程
一、Android 進程優(yōu)先級
Android 進程優(yōu)先級 : ① 前臺進程 > ② 可見進程 > ③ 服務(wù)進程 > ④ 緩存進程 > ⑤ 空進程 ;
-
關(guān)鍵優(yōu)先級進程 : ① 活動進程 ;
-
高優(yōu)先級進程 : ② 可見進程 , ③ 服務(wù)進程 ;
-
低優(yōu)先級進程 : ④ 后臺進程 , ⑤ 空進程 ;
Android 系統(tǒng)中會盡量保證優(yōu)先級高的進程的存在時間盡可能長 ;
如果資源不足 ( 這里的資源最主要的是內(nèi)存 ) , 為了可以新建進程 , 以及重要進程的運行 , 系統(tǒng)會殺死一些低優(yōu)先級進程 , 并回收該進程所占用的內(nèi)存 ;
如果出現(xiàn)內(nèi)存不足的情況 , 會按照上述進程優(yōu)先級順序進行回收 , 從低到高進行 ;
文檔參考 :
- 進程和應(yīng)用生命周期文檔參考 : https://developer.android.google.cn/guide/components/activities/process-lifecycle
- 進程與線程文檔參考 : https://developer.android.google.cn/guide/components/processes-and-threads.html
- 通過線程提升性能文檔參考 : https://developer.android.google.cn/topic/performance/threads
二、前臺進程
前臺進程 :
① 前臺 Activity 進程 : 當前展示的 Activity 所在的進程 , 即已經(jīng)調(diào)用了 onResume 方法 , 處于前臺的界面進程 ;
② 綁定前臺 Activity 的 Service 進程 : 綁定在 前臺正在交互 Activity 上的 Service 進程 ;
③ 前臺運行的 Service 進程 : 在前臺運行的 Service 服務(wù) , Service 調(diào)用了 startForeground 方法后的狀態(tài) ;
④ 處理生命周期回調(diào)的 Service 進程 : 正在執(zhí)行生命周期回調(diào)方法的 Service 服務(wù)進程 , 如正在執(zhí)行 onCreate , onStart , onDestory 方法的 Service 進程 ;
⑤ 處理 onReceive 回調(diào)的 BroadcastReceiver 進程 : 接收到信息 , 執(zhí)行 onReceive 方法的 BroadcastReceiver 廣播接收者 ;
一般情況下 , 前臺進程不會被回收 , 只有內(nèi)存非常低時 , 無法正常響應(yīng)用戶操作 , 才回收前臺進程 ;
三、可見進程
可見進程 : 不是前臺組件 , 但是出于用戶可見范圍內(nèi) ;
① 綁定 onPause 界面的 Service 進程 : Activity 組件調(diào)用 onPause 生命周期函數(shù) , 但是沒有調(diào)用 onStop 方法徹底不可見的 Activity 組件 , 如彈出對話框 , 對話框是前臺進程 , 后面被覆蓋的 Activity 就變成了可見進程 ;
綁定在 可見 Activity 組件上的 Service 進程 , 也被稱為可見進程 ;
可見進程也是很重要的進程 , 除非為了保證前臺進程的運行 , 一般不會被回收 ;
四、服務(wù)進程
① 服務(wù)進程 : 調(diào)用 startService 方法啟動的 Service 進程組件 , 就是服務(wù)進程 , 其沒有與 Activity 組件綁定 , 因此該 Service 組件的優(yōu)先級要降低一個等級 , 稱為服務(wù)進程 ;
服務(wù)進程沒有與用戶可見的 Activity 界面有關(guān)聯(lián) ;
服務(wù)進程操作一般是比較重要的操作 , 如后臺下載 , 數(shù)據(jù)傳輸?shù)?, 除非內(nèi)存不足 , 無法維持可見進程與前臺進程 , 一般不會被回收 ;
五、后臺進程
后臺進程 :
① 用戶不可見的 Activity 進程 , 如調(diào)用了 onStop 方法的 Activity 組件 , 但是沒有調(diào)用 onDestroy 方法銷毀的界面組件 ;
出現(xiàn)后臺進程的幾種情況 :
-
打開了新的 Activity 頁面 , 沒有 finish 掉當前界面 ;
-
點擊 Home 鍵 , 任務(wù)棧進入后臺 ;
-
點擊 Menu 鍵 , 切換了其它任務(wù)棧 ;
六、空進程
空進程中不包含任何應(yīng)用組件 ( Activity , Service , BroadcastReceiver , ContentProvider ) ;
空進程一般用于緩存數(shù)據(jù) , 優(yōu)先級最低 , 系統(tǒng)隨時都會終止空進程 ;
總結(jié)
以上是生活随笔為你收集整理的【Android 进程保活】Android 进程优先级 ( 前台进程 | 可见进程 | 服务进程 | 后台进程 | 空进程 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 安全】DEX 加密 (
- 下一篇: 【Android 进程保活】Low Me