Android進(jìn)程類型及優(yōu)先級
一、Android 進(jìn)程優(yōu)先級
Android 進(jìn)程優(yōu)先級 :前臺進(jìn)程 > 可見進(jìn)程 >服務(wù)進(jìn)程 >緩存進(jìn)程 > 空進(jìn)程 ;
- 關(guān)鍵優(yōu)先級進(jìn)程 : 活動進(jìn)程 ;
- 高優(yōu)先級進(jìn)程 : 可見進(jìn)程 , 服務(wù)進(jìn)程 ;
- 低優(yōu)先級進(jìn)程 : 后臺進(jìn)程 , 空進(jìn)程 ;
Android 系統(tǒng)中會盡量保證優(yōu)先級高的進(jìn)程的存在時間盡可能長 ;如果資源不足 ( 這里的資源最主要的是內(nèi)存 ) , 為了可以新建進(jìn)程 , 以及重要進(jìn)程的運行 , 系統(tǒng)會殺死一些低優(yōu)先級進(jìn)程 , 并回收該進(jìn)程所占用的內(nèi)存 ;如果出現(xiàn)內(nèi)存不足的情況 , 會按照上述進(jìn)程優(yōu)先級順序進(jìn)行回收 , 從低到高進(jìn)行
二、前臺進(jìn)程
前臺進(jìn)程的條件:
- 前臺 Activity 進(jìn)程 : 當(dāng)前展示的 Activity 所在的進(jìn)程 , 即已經(jīng)調(diào)用了 onResume 方法 , 處于前臺的界面進(jìn)程 ;
- 綁定前臺 Activity 的 Service 進(jìn)程 : 綁定在 前臺正在交互 Activity 上的 Service 進(jìn)程 ;
- 前臺運行的 Service 進(jìn)程 : 在前臺運行的 Service 服務(wù) , Service 調(diào)用了 startForeground 方法后的狀態(tài) ;
- 處理生命周期回調(diào)的 Service 進(jìn)程 : 正在執(zhí)行生命周期回調(diào)方法的 Service 服務(wù)進(jìn)程 , 如正在執(zhí)行 onCreate , onStart , onDestory 方法的 Service 進(jìn)程 ;
- 處理 onReceive 回調(diào)的 BroadcastReceiver 進(jìn)程 : 接收到信息 , 執(zhí)行 onReceive 方法的 BroadcastReceiver 廣播接收者 ;
一般情況下 , 前臺進(jìn)程不會被回收 , 只有內(nèi)存非常低時 , 無法正常響應(yīng)用戶操作 , 才回收前臺進(jìn)程 ;
三、可見進(jìn)程
可見進(jìn)程 : 不是前臺組件 , 但是出于用戶可見范圍內(nèi) ;
- 綁定 onPause 界面的 Service 進(jìn)程 : Activity 組件調(diào)用 onPause 生命周期函數(shù) , 但是沒有調(diào)用 onStop 方法徹底不可見的 Activity 組件 , 如彈出對話框 , 對話框是前臺進(jìn)程 , 后面被覆蓋的 Activity 就變成了可見進(jìn)程 ;
- 綁定在 可見 Activity 組件上的 Service 進(jìn)程 , 也被稱為可見進(jìn)程 ;
可見進(jìn)程也是很重要的進(jìn)程 , 除非為了保證前臺進(jìn)程的運行 , 一般不會被回收 ;
四、服務(wù)進(jìn)程
- 服務(wù)進(jìn)程 : 調(diào)用 startService 方法啟動的 Service 進(jìn)程組件 , 就是服務(wù)進(jìn)程 , 其沒有與 Activity 組件綁定 , 因此該 Service 組件的優(yōu)先級要降低一個等級 , 稱為服務(wù)進(jìn)程 ;
服務(wù)進(jìn)程沒有與用戶可見的 Activity 界面有關(guān)聯(lián) ;服務(wù)進(jìn)程操作一般是比較重要的操作 , 如后臺下載 , 數(shù)據(jù)傳輸?shù)?, 除非內(nèi)存不足 , 無法維持可見進(jìn)程與前臺進(jìn)程 , 一般不會被回收
五、后臺進(jìn)程
后臺進(jìn)程 :
- 用戶不可見的 Activity 進(jìn)程 , 如調(diào)用了 onStop 方法的 Activity 組件 , 但是沒有調(diào)用 onDestroy 方法銷毀的界面組件 ;
出現(xiàn)后臺進(jìn)程的幾種情況 :文章來源:http://www.zghlxwxcb.cn/news/detail-848837.html
- 打開了新的 Activity 頁面 , 沒有 finish 掉當(dāng)前界面 ;
- 點擊 Home 鍵 , 任務(wù)棧進(jìn)入后臺 ;
- 點擊 Menu 鍵 , 切換了其它任務(wù)棧 ;
六、空進(jìn)程
空進(jìn)程中不包含任何應(yīng)用組件 ( Activity , Service , BroadcastReceiver , ContentProvider ) ;
空進(jìn)程一般用于緩存數(shù)據(jù) , 優(yōu)先級最低 , 系統(tǒng)隨時都會終止空進(jìn)程 ;文章來源地址http://www.zghlxwxcb.cn/news/detail-848837.html
附錄
- 進(jìn)程和應(yīng)用生命周期文檔參考
- 進(jìn)程與線程文檔參考
- 通過線程提升性能文檔參考
- 【Android 進(jìn)程?;睢緼ndroid 進(jìn)程優(yōu)先級 ( 前臺進(jìn)程 | 可見進(jìn)程 | 服務(wù)進(jìn)程 | 后臺進(jìn)程 | 空進(jìn)程 )
到了這里,關(guān)于Android進(jìn)程類型及優(yōu)先級(前臺進(jìn)程/可見進(jìn)程/服務(wù)進(jìn)程/緩存進(jìn)程/空進(jìn)程)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!