最近发现一个有意思的现象:唤醒小爱同学,说“打开全面屏”,弹出澎湃OS新版导航设置页面;仅仅换个词,说“打开全屏”,直接调出MIUI时代的旧设置界面。(大家可以按我这儿的方式试一试,100%复现)

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

两套独立界面共存于同一个澎湃OS系统里,这件小事,是不是就算是MIUI遗留“屎山代码”没清理干净的直观证据?也解释了小米系统长期存在卡顿、掉帧的根源?

实测现象:一字之差,两个完全不同的设置页面

打开网易新闻 查看精彩图片

1. 唤醒小爱同学,语音指令:打开全面屏

跳转澎湃OS全新设计的【全面屏】设置页,界面布局、文字描述都是HyperOS规范样式。

2. 唤醒小爱同学,语音指令:打开全屏

打开网易新闻 查看精彩图片

神奇的一幕出现,弹出一套MIUI风格的【系统导航方式】老界面,UI样式、排版都是澎湃OS诞生之前的旧版本。

两套页面功能高度重合,都可以控制全面屏手势、隐藏手势提示线、开启二次滑动确认,但却是两套相互独立的页面,同时保存在当前最新澎湃OS安装包中。

打开网易新闻 查看精彩图片

也就是说,澎湃OS系统内部同时保留了新旧两套入口代码。只要小爱识别到不同关键词,就会分别调用两套不同页面。

什么是“代码屎山”?十几年迭代留下的技术债

很多人疑惑,为什么升级澎湃OS,不直接删掉MIUI旧代码?

打开网易新闻 查看精彩图片

MIUI持续迭代十余年,大量功能不断新增、修改。为了保证老APP、老操作习惯兼容,系统不能粗暴删除旧代码。长期叠加之下,大量老旧模块、废弃页面、兼容接口保留在系统底层,圈内俗称“屎山代码”。

澎湃OS发布之初,官方定位是跨设备全新操作系统,但早期版本更多是架构整合,无法一次性彻底剔除全部MIUI遗留模块。大量旧页面、旧接口只能暂时保留,维持兼容性。

本次“全屏/全面屏”双界面,就是典型例子:旧的跳转逻辑没有删除,新界面又重新开发,两套代码并行存在。

重点讨论:遗留冗余代码,能不能等同于系统卡顿的元凶?

冗余代码持续拖累性能

系统底层并存多套实现相同功能的代码,不仅占用存储空间,部分后台兼容组件会持续占用内存;新旧代码调度逻辑冲突,容易引发动画掉帧、偶发卡顿、杀后台、应用闪退。

同样一个功能,存在两套代码,维护难度翻倍,长期累积,系统负担持续加重。

小米其实已经意识到问题,澎湃OS4目标清理历史包袱

打开网易新闻 查看精彩图片

根据曝光信息,即将到来的澎湃OS4,核心目标就是清理大量MIUI时代遗留兼容代码,采用Rust重构核心模块,推行“零遗留架构”。

本质就是偿还长达十多年的技术债务,逐步移除不再需要的旧页面、旧接口,减少系统冗余。

这也侧面印证:官方清楚长期堆叠代码带来的弊端。

结语

一个小小的语音指令,无意中掀开了澎湃OS底层的冰山一角。

从MIUI到澎湃OS,小米想要完成系统脱胎换骨,不仅是打通人车家全生态,更需要漫长时间清理堆积多年的技术债务。

大家日常使用小米手机有没有遇到莫名卡顿、动画掉帧?你觉得遗留代码对系统流畅度影响大吗?评论区一起交流!