作者htmlchild (神秘的「忧」灵)
看板Blind_Mobile
标题[分享] 简单解释 Android 对於 RAM 的使用方式
时间Fri Sep 20 17:17:53 2013
在网路上找到的,与大家分享 原文章网址:
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
1F:推 gigihh:推。请问Android会因为Ram不足而重新开机吗? 09/20 19:50
2F:→ gigihh:我自己就遇过几次手机自动重开。 09/20 19:50