APP下载

Android要纠正内存世界观了

消息来源:baojiabao.com 作者: 发布时间:2026-02-12

报价宝综合消息Android要纠正内存世界观了

Android首先使用的是一个去掉swap的Linux内核(至少在Android
4.4以前的版本中是这样),这样就阻碍了Android上的应用程序使用Page
out(应用程序使用的内存,对操作系统而言都是一张张Page,而对于老化的Page,操作系统可以将它们从内存中置换到硬盘上,这种操作叫作Page
out),这一常规的内存操作。那么是不是可以理解为Android应用就更应该省著用内存了呢?答案还不一定。

Android框架对于进程内存的第二个管控特征是,每个进程都有一个内存最高阈值(纯净的Native内存申请不算在内),一旦进程申请内存突破了这个阈值,将会产生异常,并退出运行时的物理内存空间。简单地说,也就是Android为每个进程已经分好了一块蛋糕,至于你吃或者不吃,是你自己的事情。但这是否意味着Android应用程序为了效率考虑,应该玩命儿申请内存,使自己的内存沿着天花板滑行,这样是否最健康呢?答案也不一定。

Android的第三个管控特征是,进程都有可能被杀。在物理内存吃紧的时候(通常在使用meminfo查看内存概况的PSS总值达到设备物理内存的80%左右时),Android框架就开始根据一套自由的LRU进程Cache列表来杀死进程,被杀死的进程在死前将会得到通知,用以保存现场。而这部分被杀死的进程所腾出来的物理内存,就可以用于某些应用程序的内存申请需求。那么是不是为了不被杀死,Android应用应该尽量减少自己内存,以降低在LRU进程Cache列表中的排名呢?答案还是不一定。

既然已经有App的内存负载排名了,那么怎么做到在内存负载方面优于别的目标产品呢?在关于Procstats的章节我们已经介绍了所谓的“潜规则”。要影响排行的顺序,就要了解排行的原因,先要看看“后台”的定义。内存专项标准,如表所示。



2018-04-04 02:31:00

相关文章