[分享] 簡單解釋 Android 對於 RAM 的使用方式
在網路上找到的,與大家分享 原文章網址:
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
09/20 19:50, 1F
→
09/20 19:50, , 2F
09/20 19:50, 2F
Blind_Mobile 近期熱門文章
PTT數位生活區 即時熱門文章