綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[資料] Android系統記憶體不足時,組建回收順序問題

[複製連結] 查看: 2038|回覆: 4|好評: 0
跳轉到指定樓層
樓主
暗桌之光 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-7-31 10:38

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
Android Process Lifecycle
Android系統記憶體不足時 , 就需要把舊的或不需要用的應用 程式 移除. 如同之前的 Activity 生命 週期 所介紹, 這個移除的決定是由應用 程式 所處的狀態來判斷. 一般來說,當需要移除應用 程式 時, 系統將會做排序 , 然後從最不重要的開始移除 , 以下是移除時的考量順序 :

1. 最早被移除的是 Empty Process( 空行程 ):
Empty process 是指那些沒有跟 Activity 綁定 , 也沒有跟任何的應用 程式組件 (比如 Service 或 IntentReceiver) 綁定在一起的process, 這些空行程一定是最早被系統考慮移除的 .
2. 第 2 順位考慮被移除的是 Background Activity.
Background Activity指這個 activity 是無法被使用者看到的的情況 , 表示 Activity 已處於 stop 的狀態 , 系統移除這些 Activity 是安全的 . 通常有多個 Background Activity 同時執行 , 這些 Activity 被存放在一個 LRU (least recent used) list 中 , 系統可以根據 LRU list 判斷哪些 Activity 可以被移除 , 哪一個應該是最先被移除的 .
3. 第 3 順位被移除的是 Service Process.
在 Android 應用 程式 裡, 有一種沒有 UI 的類別 (android.app.Service), 稱之為 Service. Service Process 通常是由startService() 方式啟動 . 簡單來說, Service 屬於 background( 背景 ) 程式 , 透過背景程式 , 我們可以製作一些不需要 UI 的功能 , 例如 : 在背景撥放音樂 , 上傳或下載文件等 . 系統通常會保護它 , 除非真的沒有 記憶體 可用.
4. 接著輪到 Visible Activity / Visible Process:
Visible Process是一個可被 Visible 的 , 但是沒有顯示在最上端 (onPause 被使用時 ). 舉例來說 , 當一個新的對話框 Activity 出現時 , 原來的 Activity 仍然 visible, 仍然被系統認為是重要的 , 通常不會被移除 . 但若不得不移除時 , 由於屬於 Paused 狀態 , 相對來說 , 它已經處於一個比較安全的位置 .
5. 最後被移除的是 Foreground Activity:
Foreground是一個在 螢幕 最上端與使用者做互動的Activity, 它的優先權最高 . 原則上會是最後一個被移除的 程式 , 除非這個Activity 所需要的 記憶體 大小已經超出系統所能給的. 系統之所以會移除這些程式 , 是為了不讓使用者 頁面 停止回應.
由於Android 應用 程式 的lifecycle 並不是由 程式 本身直接控制的, 而是由系統平台進行管理 . 所以對於開發者而言 , 許要瞭解不同組件 Activity, Serivce 和 IntentReceiveer 的 Lifecycle. 要切記 : 如果 組件 使用不當, 雖然正在進行重要的 Process, 仍有可能被系統主動移除 .
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
沙發
hankar | 收聽TA | 只看該作者
發表於 2012-1-24 20:24
10個裡有超過兩個明白的看得懂的我頭給你敲3下...哈哈哈
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
charonchen | 收聽TA | 只看該作者
發表於 2012-1-29 22:06
google 翻譯android官網的文件來的?!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
mosqui | 收聽TA | 只看該作者
發表於 2012-1-31 19:23
受用不少
謝謝大大的解說
以後發開會注意一下
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
超難吃 | 收聽TA | 只看該作者
發表於 2012-2-6 22:02
感謝大大ㄉ分享唷~小ㄉ去學ㄌ
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則