Android內(nèi)存管理機制_第1頁
Android內(nèi)存管理機制_第2頁
Android內(nèi)存管理機制_第3頁
Android內(nèi)存管理機制_第4頁
Android內(nèi)存管理機制_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 解讀 Andriod 內(nèi)存管理機制 一、進程類型 1、前臺進程(foreground):目前正在屏幕上顯示的進程和一些系統(tǒng)進程。舉例來說, Dialer Storage,Google Search 等系統(tǒng)進程就是前臺進程;再舉例來說,當你運行一個程序,如瀏覽器,當瀏覽器界面在前 臺顯示時,瀏覽器屬于前臺進程(foreground),但一旦你按 home 回到主界面,瀏覽器就變成了后臺程序(background)。我們最不希望終止的進程就是前臺進程。 2、可見進程(visible):可見進程是一些不再前臺,但用戶依然可見的進程,舉個例來說:widget、

2、輸入法等,都屬于 visible。這部分進程雖然不在前臺,但與我們的使用也密切相關(guān),我們也不希望它們被終 止(你肯定不希望時鐘、天氣,新聞等 widget 被終止,那它們將無法同步,你也不希望輸入法被終止,否則你每次輸入時都需要重新啟動輸入法)。 3、次要服務(secondary server):目前正在運行的一些服務(主要服務,如撥號等,是不可能被進程管理終止的,故這里只談次要服務),舉例來說:谷歌企業(yè)套件,Gmail 內(nèi)部存儲,聯(lián)系人內(nèi)部存儲等。這 部分服務雖然屬于次要服務,但很一些系統(tǒng)功能依然息息相關(guān),我們時常需要用到它們,所以也太希望他們被終止。 

3、;4、后臺進程(hidden):雖然作者用了 hidden 這個詞,但實際即是后臺進程(background),就是我們 通常意義上理解的啟動后被切換到后臺的進程,如瀏覽器,閱讀器等。當程序顯示在屏幕上時,他所運行的進程即為前臺進程(foreground),一旦我們按 home 返回主界面(注意是按 home,不是按 back),程序 就駐留在后臺,成為后臺進程(background)。后臺進程的管理策略有多種:有較為積極的方式,一旦程序到達后臺立即終止,這種方式會提高程序的運行速度,但無法加速程序的再次啟動;也有較消極的方式, 盡可能多的保留后臺程序,雖然可能會

4、影響到單個程序的運行速度,但在再次啟動已啟動的程序時,速度會有所提升。這里就需要用戶根據(jù)自己的使用習慣找到一個平衡點。 5、內(nèi)容供應節(jié)點(content provider):沒有程序?qū)嶓w,進提供內(nèi)容供別的程序去用的,比如日歷供應節(jié) 點,郵件供應節(jié)點等。在終止進程時,這類程序應該有較高的優(yōu)先權(quán)。 6、空進程(empty):沒有任何東西在內(nèi)運行的進程,有些程序,比如 BTE,在程序退出后,依然會在 進程中駐留一個空進程,這個進程里沒有任何數(shù)據(jù)在運行,作用往往是提高該程序下次的啟動速度或者記 錄程序的一些歷史信息。這部分進程無疑是應該最先終止的。二、

5、 內(nèi)存管理機制 Android 是一個多任務系統(tǒng)。當退出程序時,Android 系統(tǒng)不會立即將它 Kill,這樣下次再運行該程序時,可以快速啟動。隨著系統(tǒng)中保留的程序越來越多,內(nèi)存會出現(xiàn)不足,此時 Android 系統(tǒng)使用”LowMemory Killer”實現(xiàn)內(nèi)存管理機制,即根據(jù)程序的重要性來決定 Kill 誰。Android 將程序的重要性分成以下幾類,按照重要性依次降低的順序: 其中每個程序都會有一個 oom_adj 值,這個值越小,程序越重要,被 Kill 的可能性越低。除了上述程序重 要性分類之外,Android 系同還維護著另外一張

6、表,這張表是一個對應關(guān)系,以 N1為例: 這個表是定義了一個對應關(guān)系,每一個警戒值對應了一個重要性值,當系統(tǒng)的可用內(nèi)存低于某個警戒值時,就殺掉所有大于該警戒值對應的重要性值的程序。比如說,當可用內(nèi)存小于 6144 * 4K = 24MB 時, 開始殺所有的 EMPTY_APP,當可用內(nèi)存小于 5632 * 4K = 22MB 時,開始 Kill 所有的 CONTENT_PROVIDER 和 EMPTY_APP。上面這張對應表是由兩個文件組成的: /sys/module/lowmemorykiller/parameters/adj 和/sys/module

7、/lowmemorykiller/parameters/minfree。 使用“ alter minfreee”可以修改 /sys/module/lowmemorykiller/parameters/minfree 這個文件。例如,若將最后一項改為 32 * 1024,那么當可用內(nèi)存小于 128MB 是,就開始殺所有的 EMPTY_APP。三、內(nèi)存優(yōu)化模式1、游戲玩家/重度瀏覽器使用者配置 用戶特點:長時間專注于某一特定的,高內(nèi)存需求 的程序,對多任務的需求不高 配置參數(shù):  Foreground:6 Visible:8&#

8、160;Secondary Server:16 Hiden App:80 Content Provider:90 Empty:100配置理念:壓榨后臺進程,內(nèi)容供應節(jié)點和空進程,將內(nèi)存盡可能多得留給前臺進程和系統(tǒng),提升游 戲速度和瀏覽器體驗。 優(yōu)點:程序啟動和運行的速度最快 缺點:多任務處理不理想,開啟程序較多時,后臺進程會被終止2、多任務配置 用戶特點:同時運行多個應用程序,需要經(jīng)常在多 個程序間切換 配置參數(shù):  Foreground:6 Visible:8 S

9、econdary Server:16 Hiden App:20 Content Provider:60 Empty:100配置理念:壓榨空進程,給內(nèi)容供應節(jié)點留有一定空間,最大限度提升后臺程序的使用空間,提升多 任務的處理能力 優(yōu)點:運行多個程序時,由于可支配內(nèi)存較多,后臺程序不容易被終止 缺點:程序啟動的速度和整體系統(tǒng)的運行速度可能會比游戲玩家配置略慢一些,由于經(jīng)常運行多任務, 平時系統(tǒng)的響應速度會受到一定影響。 3、輕度用戶/女生專用配置 用戶特點:手機的主要功能是短信和電話,偶爾用 用相機自拍 配置參數(shù):  Foreground:6 Visible:8 Secondary Server:16 Hiden App:24 Content Provider:32 Empty:48配置理念

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論