[分享] 簡單解釋 Android 對於 RAM 的使用方式

看板Blind_Mobile作者 (神秘的「憂」靈)時間10年前 (2013/09/20 17:17), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
在網路上找到的,與大家分享 原文章網址: http://www.mobile01.com/topicdetail.php?f=565&t=3338577 因為不少人對於為什麼 Android 運行會不順暢?或是已經拿了高階機種卻依然會 Delay 的部分很有疑問,所以在這邊用比較簡單的方式說明一下 Google 的 Android 作業系統對於 RAM 是如何管理的。我盡量以比較簡單的方式解說,沒有太多過於複雜的專有名詞,希望 能解開大眾的疑惑。當然,如果有錯誤的地方也歡迎指正,並希望能將這篇文章傳播出去 ,以減少多數人對這部分的不解。 Android 是基於 Linux 的系統,RAM 的分割方式如下: |-----主系統佔用(這部分看不到)-----|---後台長駐服務---|--閒置程式快取--|-剩餘 RAM-| 可以看到主系統佔用很多(隨著Android版本的進化,以後可能還會越來越多) 後台服務佔用的量通常依照你掛載了多少常駐服務而定(FB、LINE、WhatsApp...等等) 而使用過未完全關閉的 APP 會變成快取處於閒置狀態供隨時喚醒(相機、圖片庫、計算機 ...等等) 真正剩下的 RAM 其實非常的少,目前 Android 4.2.2 版本的話預設只有 31.52 MB 在目前 Android 主流版本的原始設定裡 APP 展開後的預設 RAM 使用量是 8 MB 當預設值不足時往上增加,每次 64 MB 最大上限可到 256 MB ※參照/system/build.prop,有些機種可能會有更改而不同 所以只要你的剩餘 RAM 有大於 8 MB 都不會有問題 當 APP 需要更多 RAM 來處理時,系統會關閉閒置程式 讓 RAM 空出來給前台作業擴增 像原生系統的 Nexus 系列就算閒置 RAM 再低 都沒有什麼運行不順暢的問題 另外,一般的殺程式或工作管理 APP 其實會跟系統搶工作 反而造成互相衝突且無謂的多餘動作,實在不需要使用 而且通常只能看到”|--閒置程式快取--| -剩餘RAM-|”這段 看不到真正的”| -剩餘RAM-|” 因為多半都是直接讀取這邊的訊息而已 而廠商客製化過的 ROM(非原生Android)因為整合性跟相容性的問題 軟體寫的不好就容易在多工作業累積量多時造成運行不順暢 這點跟 RAM 多少沒太大關係,反而是 I/O 衝突,或是 CPU 處理能力不夠 所以以目前 Android 主流版本來說,RAM 其實只要有 1 GB 就夠了 系統會自動調整來協助使用者操作 所以遇上Delay通常有兩種結論: 強大的 CPU 配上大量的 RAM 卻依然不順暢?廠商客製化軟體寫不好拖垮系統的可能性比 較大 普通的 CPU 配上 1 GB 的 RAM 卻依然不順暢?CPU 處理能力不夠的可能性比較大 那 RAM 為什麼要越來越多? 因為 Android 是多工系統,因應使用者需求越來越大 1.常駐程式使用量越來越多 2.讓更多程式處於閒置快取狀態來提高啟動速度 所以 RAM 越多,的確是有好處 你可以開啟越多 APP 不用關,隨時需要馬上喚醒 因為從”完全關閉狀態”啟動程式可能需要 0.5 秒 但從”閒置快取狀態”喚醒卻只要 0.1 秒(連過場動畫還沒播完就完全展開在等待了) 你也可以同時常駐更多服務在後台,不必擔心閒置程式快取區太少 因為當閒置程式快取區比較少時,你可能只能放 5 個程式在裡面 當開啟第 6 個時,第 1 個程式就會被強制關閉來釋放 RAM 但如果閒置程式快取區比較多時,你可能可以放 10 個程式在裡面 直到開啟第 11 個時,第 1 個程式才會被強制關閉來釋放 RAM 如果你常用的程式就那不到 10 個 CPU 就不用花太多時間來做”關閉程式→釋放RAM→前台擴增”這個動作了 以上的說明,如有錯誤歡迎指正,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.129.78.22

09/20 19:50, , 1F
推。請問Android會因為Ram不足而重新開機嗎?
09/20 19:50, 1F

09/20 19:50, , 2F
我自己就遇過幾次手機自動重開。
09/20 19:50, 2F
文章代碼(AID): #1IF1B3CN (Blind_Mobile)