三易生活 5小时前
安卓17迎来新的内存管理机制,流氓App末日到了
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

就在国内手机厂商携手推进 " 公平内存运行机制 " 之后,作为 Android 生态盟主的谷歌也出手了。日前,谷歌在 Android 开发者博客发布的博文中宣布,将继续加强 Android 生态系统的内存管理机制,系统将根据设备实际内存容量为应用设定可使用的上限,防止单个应用占用过多资源拖垮系统稳定性。

也就是说,Android 17 会根据设备的内存规格为每个应用设定内存上限,在某个 App 超过阈值后,系统会先将 App 的部分数据压缩至压缩内存(zRAM),此时 App 仍可运行但会变慢。如果 App 的内存占用继续超限,系统则会升级惩罚,直接终止这个 App 的进程,阻断因单个 App 内存溢出引发的连锁反应。

其实从某种意义上来说,新的内存管理机制应该是 Android 17 最大的变化,也直接更改了 Android 内存管理的调度逻辑。虽然 Android 系统在设计上追求的是充分利用设备的物理内存,进而确保系统数据的访问性能,系统的可用内存越小,内存的利用率就更高、缓存中的数据就越多,数据访问的命中率就越高,从而让系统响应速度越快。

这一设计理念,就决定了 Android 系统对于后台进程的策略是尽量保留,直到可用内存告警。为了确保系统对内存的充分利用,谷歌为 Android 设计了一个名为 Low Memory Killer(低内存杀手)的内存回收机制,也就是当系统发现内存低于警戒线时,会通过对进程的重要性进行评估,来决定关闭进程释放内存以确保系统流畅度。

按照谷歌给出的 Android 开发者手册,不需要执行任务的空闲 App 应主动释放资源。然而为了商业利益,大量第三方开发者选择了 " 死道友不死贫道 ",无视谷歌的这个建议,反而是会尽可能保留大量缓存、服务,甚至其他后台任务。

事实上,以往 Android 的内存管理机制是 " 老实人吃亏 ",谷歌在相关博客中就将这个现象称为 " 一个坏苹果毁掉整个多任务体验 "。当 Android 生态陷入公地悲剧,手机厂商选择了一刀切,执行高强度杀后台策略,并且为了避免用户体验下降,诸如微信、QQ、微博、抖音、淘宝这类热门 App 进入了白名单。

由于不患寡而患不均,这就导致其他开发者自然会向谷歌投诉。所以为了安抚开发者,自从 Android 14 以来,杀后台策略开始被边缘化。好在手机的内存规格在同一时间也迎来大幅提升,12GB 乃至 16GB 内存逐步成为标配,算得上是 " 用发展的办法解决发展中的问题 "。

然而这一轮 AI 潮虹吸存储芯片产能,导致 Android 手机已经没办法继续用增大设备内存的方式来解决问题。对此谷歌的做法是 " 学苹果 ",对单个 App 的内存占用执行硬性限制。当然,谷歌的做法没有苹果那么霸道,并不会直接关闭超限 App,而是加入了 zRAM 作为缓冲。

zRAM 其实是 Linux 3.14 内核版本加入的一个功能,可以将 zRAM 理解为内存的缓冲池,类似 Windows 的虚拟内存。系统会预先将部分物理内存划出来当成 zRAM 块设备,然后把不常用的内存数据通过压缩后存放在 zRAM 里,等到用到的时候,再把数据解压出来。

但谷歌对 Android 17 的 zRAM 进行了改良,它不会占用物理内存。谷歌在这里用了一个妙招,系统会从闪存里划出 2GB 至 4GB 当作虚拟内存,这是由于顺序读取速度达到 2279.9MB/s 的 UFS 3.0 闪存大规模使用,更快的 UFS 4.0 在中高端产品中已经普及,压缩‑解压的过程不会慢到用户无法接受。

从某种意义上来说,Android 17 新的内存管理机制,是谷歌从国内手机厂商的虚拟内存扩展、内存扩容技术中汲取的灵感。当然,Android 17 新的内存管理机制并不是毫无代价,由于数据的压缩、解压需要 CPU 执行相应算法,因此会略微增加处理器功耗,所以手机的续航能力相应会有所下降。

不过对于小内存的机型来说,续航反而是相对更加廉价的东西,内存才是真金白银。只能说,这一次谷歌终于要救入门机于水火之中了。

【本文图片来自网络】

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

android 谷歌 命中率 qq 抖音
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论