一.前台進程-Active Process
Active(前台)process 包含(與用戶交互的)控件的應用程序,這些是android通過回收資源盡力保護的進程。
Active process包括:
1.處於“active”狀態的activity,它們運行在前台來響應用戶的事件
2.Activity Service或者正在執行onReceive事件處理的函數的BroadCast Receiver
3.正在執行onStart,onCreate,onDestory事件處理函數的Service
二.可見進程-Visible Process
可見但是不活動的進程是那些處於“Visible”狀態的進程,“Visible”Activity是那些屏幕上可見,但不是在前台或者不響應用戶事件的Activity。
這種情況一般發生在當一個activity被部分遮蓋的時候(被一個非全屏或者透明的Activity)。可見進程只在極端的情況下,才會被殺死來保護前台進程的運行。
Visible process包括:
1.可見的activity,但出於暫停(OnPause)狀態
2.被可見Activity綁定的Service
三.服務進程-Service Process
服務進程包含已經啟動的service,service以動態的方式持續運行但沒有可見的界面。因為Service不直接和用戶交互,它們擁有比Visible Process較低的優先級。
它們還是可以被認為是前台進程,不會被殺死,直到資源被activity/visible process需求。
四.背景進程-Background Process
進程中的Activity不可見和進程中沒有任何啟動的service,這些進程都可以是后台進程。
在系統中,擁有大量的后台進程,並且Android會按照后看見先殺掉的原則來殺掉后台進程以獲取系統資源給前台進程。
五.空進程-Empty Process
為了改善整個系統的性能,android經常在內存中保留那些已經走完生命周期的應用程序。
android維護這些緩存來改善應用程序重新啟動的時間。這些進程在資源需要的時候會被殺掉。
當一個進程被殺掉,進程保留,變成空進程。