技术解读:小米MIUI的原子记忆机制是如何实现的?

10年8月,在“我的梦想,我的主题”2021年度演讲暨小米秋季新品发布会上,小米MIX 4正式发布,不仅抢到了高通骁龙888+芯片,还采用了全新的杯子全面屏,并通过首创微钻排列技术,实现了100%全像素显示。在外壳工艺方面,小米再次优化了陶瓷机身,触感更好,机身重量减轻了30%。

小米MIX 4在硬件层面采用了多项“黑科技”,而作为系统软件的MIUI,虽然没有新的功能发布,但在软硬件结合上令人耳目一新。原子记忆机制是小米产品总监、MIUI体验总经理金范在介绍MIUI12.5增强版时重点强调的一项功能优化。

通过原子内存机制,MIUI12.5增强版可以实现超精细内存管理,拆分应用内存,优先结束不重要的任务,而不是暴力的程序强制退役,让系统内存得到更精细的利用。金范表示,以小米10极速纪念版为例,后台驻留容量提升了64%。

你不禁要问,这真的是“黑科技”吗?或者说这种“黑科技”是如何实现的?

这里我们必须弄清楚原生Android如何与系统硬件一起工作。在底层系统构建上,原生Android选择了分层结构,即应用层、应用框架层、系统运行层、硬件抽象层和Linux内核层。

在这五层中,应用层负责交互;应用框架层用于应用开发;系统运行层负责本地下载应用,支持多应用并行;硬件抽象层负责抽象和控制硬件;Linux内核层有专门针对Android的驱动。

要理解这种层次结构,小米MIUI的变化应该是比较清楚的——小米在系统运行时层和硬件抽象层进行了优化。

原生Android的系统运行时层是细分的。一部分是C/C++库,主要提供基本的性能支持,比如OpenGL ES,SQLite,一个轻量级的关系数据库引擎,SGL,底层的2D图形渲染引擎。这部分需要特别提一下SQLite。从金范的描述来看,原子内存机制可以对应用进程进行优先级排序和删除,所以要调整SQLite的工作模式,使应用进程的记录方式符合原子内存机制的工作原理,金范的单进程删除和程序瘦身也需要在数据库上做文章。

系统运行时层的另一部分是运行时库,它是编译器用来实现编程语言内置功能的特殊计算机程序库,为该语言的程序提供运行时支持。这部分的重要作用是提供最基本的执行需求。小米MIUI的原子内存机制是一种特殊的进程执行。系统运行时层最初支持多应用并行,但支持的数量有限。所以小米MIUI需要定制化的执行支持,这部分要进行调整和优化。

硬件抽象层使系统能够在内核空间编写硬件驱动程序,添加支持硬件访问的接口,通过Java接口实现硬件访问。通过金范的描述,不难发现原生Android的硬件抽象层实现的硬件驱动应该是分块设置的。每个应用程序都是一个块,应用程序的所有进程都在这个块中。当系统内存无法运行新打开的应用时,按照时间顺序,需要将较早打开的应用强制撤退,下次重新加载。

从概念上可以看出小米MIUI的原子内存机制,他们改变了程序的驱动方式,让每个应用不再完整的存在于内存中,而是进行了多维度的切割,包括线程的分解和应用加载包封套的压缩功能。此外,可以独立地添加和删除线程,并且在必要时可以进一步压缩应用程序本身,从而可以在存储器中容纳更多的应用程序。

相比竞品安卓旗舰机型,当* * *打开10个应用时,搭载小米MIUI12.5增强版的机型可以让所有应用都留在后台,而竞品安卓旗舰机型有三个应用,其他程序都在后台“被杀”。

不过从小米早期用户的反馈来看,小米MIUI12.5增强版的性能还是不太稳定。有网友在小米社区反馈,即使使用小米MIUI12.5增强版内测版,后台查杀的情况依然存在。

目前这样的情况是个例还是普遍现象,需要在小米MIUI12.5增强版公开上市后才能知道。