當前位置:編程學習大全網 - 源碼下載 - android 開發多進程有什麽用

android 開發多進程有什麽用

壹個應用默認只有壹個進程,這個進程(主進程)的名稱就是應用的包名,進程是系統分配資源和調度的基本單位,每個進程都有自己獨立的資源和內存空間,其它進程不能任意訪問當前進程的內存和資源,系統給每個進程分配的內存會有限制。

如果壹個進程占用內存超過了這個內存限制,就會報OOM的問題,很多涉及到大圖片的頻繁操作或者需要讀取壹大段數據在內存中使用時,很容易報OOM的問題,如果此時在程序中人為地使用GC會嚴重影響程序運行的流暢性,並且有時候並沒有什麽卵用,多數時候我們可以在android:minSdkVersion=”11”及以上的應用中,給AndroidManifest.xml的Application標簽增加”android:largeHeap=”true”“這句話,請求系統給該應用分配更多可申請的內存:

但是這種做法的弊端有:

有時候並不能徹底解決問題,比如API Level小於11時,或者是應用需要的內存比largeHeap分配的更大的時候;當該應用在後臺時,仍然占用著的內存,系統總的內存就那麽多,如果每個應用都向系統申請更多的內存,會影響整機運行效率。

為了徹底地解決應用內存的問題,Android引入了多進程的概念,它允許在同壹個應用內,為了分擔主進程的壓力,將占用內存的某些頁面單獨開壹個進程,比如Flash、視頻播放頁面,頻繁繪制的頁面等。Android多進程使用很簡單,只需要在AndroidManifest.xml的聲明四大組件的標簽中增加”android:process”屬性即可,process分私有進程和全局進程,私有進程的名稱前面有冒號,全局進程沒有,like this:

為了節省系統內存,在退出該Activity的時候可以將其殺掉(如果沒有人為殺掉該進程,在程序完全退出時該進程會被系統殺掉),like this:

  • 上一篇:女生大學期間必玩的遊戲。
  • 下一篇:加勒比海盜主演員名單
  • copyright 2024編程學習大全網