android 进程管理机制,Android的进程管理机制
Linux系統對進程的管理方式是一旦進程活動停止,系統就會結束該進程。Android系統雖基于Linux,但在進程管理上,采取了另外一種機制。當當前進程活動停止時,系統并不會立即結束當前進程,而是會將該進程保存在內存中,以后的某個時間,一旦進程開始活動,系統又可以立即啟動該進程。
Android系統中定義了6種不同等級的進程級別。分別是前臺進程,可見進程,次要服務,后臺進程,內容供應節點,空進程。
前臺進程:優先級最高的進程,系統首要的目標和任務就是滿足前臺進程的需求。
可見進程:不在前臺,但是可見的一些進程。比如widget組件,輸入法等。
次要服務:
后臺進程:通常的理解就是我們按home鍵進行應用的切換就會將當前的應用由前臺進程變成后臺進程。
內容供應節點:沒有程序實體,提供內容供別的應用進行使用
空進程:沒有任何東西在內運行的進程,有些程序,比如BTE,在程序退出后,依然會在進程中駐留一個空進程,這個進程里沒有任何數據在運行,作用往往是提高該程序下次的啟動速度或者記錄程序的一些歷史信息。這部分進程無疑是應該最先終止的。
在程序中就用oom_adj變量的數值來表示進程的級別,對應其重要程度,每個進程在被Zygote進程孵化出來的時候都有oom_adj變量表示進程的級別,并且在運行的過程中通過改變該進程的值來表示該進程的優先級。系統就是根據各個進程的oom_adj值的大小來判斷進程間的優先級的。一般的,前臺進程的優先級為0,后臺進程的優先級為16,最小的優先級進程為-17,數值范圍就是-17至16。
每個應用在啟動的時候,Zygote進程都會孵化出一個新進程來運行應用程序,每個進程都對應自己唯一的虛擬機實例,如果應用進程一旦掛掉或者崩潰,那么死掉的僅僅是當前應用的進程,不會影響整個系統的運行。
總結
以上是生活随笔為你收集整理的android 进程管理机制,Android的进程管理机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html有序列表和无序列表互相嵌套,关于
- 下一篇: mysql 树排序_mysql按树深度排