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