Foreground Process
前臺(tái)進(jìn)程。有最高安全優(yōu)先級(jí)袋马,被系統(tǒng)kill死需要用戶確認(rèn)。
處于前臺(tái)運(yùn)行狀態(tài)袒餐,正與服務(wù)器交互飞蛹。
是用戶操作所必須的,任一時(shí)間下灸眼,僅有少數(shù)進(jìn)程會(huì)處于前臺(tái),僅當(dāng)內(nèi)存實(shí)在無(wú)法供給它們維持同時(shí)運(yùn)行時(shí)才會(huì)被殺死墓懂。一般來(lái)說(shuō)焰宣,在這種情況下,設(shè)備依然處于使用虛擬內(nèi)存的狀態(tài)捕仔,必須要?dú)⑺酪恍┣芭_(tái)進(jìn)程以用戶界面保持響應(yīng)匕积。
Android會(huì)依據(jù)進(jìn)程中當(dāng)前活躍組件的重要程度來(lái)盡可能高的估量一個(gè)進(jìn)程的級(jí)別。比如說(shuō)榜跌,如果一個(gè)進(jìn)程中同時(shí)有一個(gè)服務(wù)和一個(gè)可視的activity闪唆,則進(jìn)程會(huì)被判定為可視進(jìn)程,而不是服務(wù)進(jìn)程钓葫。
Visible Process
進(jìn)程的Activity不在前端展示悄蕾,未獲得操作焦點(diǎn),但也不是完全不可見
一個(gè)bound到visible或者foreground的activity的service。
沒(méi)有前臺(tái)組件帆调,但仍可被用戶在屏幕上所見奠骄。當(dāng)滿足如下任一條件時(shí),進(jìn)程被認(rèn)為是可視的:
? 它包含著一個(gè)不在前臺(tái)番刊,但仍然為用戶可見的activity(它的onPause()方法被調(diào)用)含鳞。這種情況可能出現(xiàn)在以下情況:比如說(shuō),前臺(tái)activity是一個(gè)對(duì)話框芹务,而之前的??? activity位于其下并可以看到蝉绷。
? 它包含了一個(gè)綁定至一個(gè)可視的activity的服務(wù)。
可視進(jìn)程依然被視為是很重要的枣抱,非到不殺死它們便無(wú)法維持前臺(tái)進(jìn)程運(yùn)行時(shí)潜必,才會(huì)被殺死。
Service Process
正在運(yùn)行的沃但,不在上面兩種狀態(tài)的Service磁滚。
是由 startService() 方法啟動(dòng)的服務(wù),它不會(huì)變成上述兩類宵晚。盡管服務(wù)進(jìn)程不會(huì)直接為用戶所見垂攘,但它們一般都在做著用戶所關(guān)心的事情(比如在后臺(tái)播放mp3或者從網(wǎng)上下載東 西)。所以系統(tǒng)會(huì)盡量維持它們的運(yùn)行淤刃,除非系統(tǒng)內(nèi)存不足以維持前臺(tái)進(jìn)程和可視進(jìn)程的運(yùn)行需要晒他。
Background Process
不可見狀態(tài)的activity進(jìn)程,onstop被調(diào)用
包含目前不為用戶所見的activity(Activity對(duì)象的 onStop() 方法已被調(diào)用)逸贾。
這些進(jìn)程與用戶體驗(yàn)沒(méi)有直接的聯(lián)系陨仅,可以在任意時(shí)間被殺死以回收內(nèi)存供前臺(tái)進(jìn)程、可視進(jìn)程以及服務(wù)進(jìn)程使用铝侵。一般來(lái)說(shuō)灼伤,會(huì)有很多背景進(jìn)程 運(yùn)行,所以它們一般存放于一個(gè)LRU(最后使用)列表中以確保最后被用戶使用的activity最后被殺死咪鲜。如果一個(gè)activity正確的實(shí)現(xiàn)了生命周 期方法狐赡,并捕獲了正確的狀態(tài),則殺死它的進(jìn)程對(duì)用戶體驗(yàn)不會(huì)有任何不良影響疟丙。
Empty Process
沒(méi)有運(yùn)行任何component的進(jìn)程颖侄,保留這個(gè)進(jìn)程主要是為了緩存的需要
這種進(jìn)程存在的唯一原因是做為緩存以改善組件再次于其中運(yùn)行時(shí)的啟動(dòng)時(shí)間。系統(tǒng)經(jīng)常會(huì)殺死這種進(jìn)程以保持進(jìn)程緩存和系統(tǒng)內(nèi)核緩存之間的平衡享郊。
此外览祖,一個(gè)進(jìn)程的級(jí)別可能會(huì)由于其它進(jìn)程依賴于它而升高。一個(gè)為其它進(jìn)程提供 服務(wù)的進(jìn)程級(jí)別永遠(yuǎn)高于使用它服務(wù)的進(jìn)程炊琉。比如說(shuō)展蒂,如果A進(jìn)程中的內(nèi)容提供者為進(jìn)程B中的客戶端提供服務(wù),或進(jìn)程A中的服務(wù)為進(jìn)程B中的組件所綁定,則A 進(jìn)程最低也會(huì)被視為與進(jìn)程B擁有同樣的重要性玄货。