8月11日,
小米开始推送第一批MIUI9开发版适配机型,包括了
小米6、小米5X、红米Note 4X(高通版),这是小米发布全新一代MIUI系统后,小米
手机系统升级的第一步。在此之前,从7月27日开始往后短短半个月时间,MIUI9内测阶段已经有10万人通过刷机或OTA在线升级方式使用上MIUI9。
在MIUI9发布后半个月时间里,翻看微博和知乎平台上网友的评价,这10万用上MIUI9的小米发烧友,对MIUI9打出的“快如闪电”体验给予了很正面的评价,称赞最新一代MIUI系统“快得飞起”“快得不像安卓系统”。
这种“快”是怎么练就的?7月26日发布会当天由于时间有限PPT上只是一带而过,“应用启动加速”、“动态资源管控”、“
内存实时反碎片”等十几个黑科技词汇听起来不明觉厉,但似乎又不明所以。本周小编与我们工程师进行了一场深度交流,深入研究MIUI9是如何“变快”的。
安卓手机使用越久会越卡?看工程师怎么说 安卓手机使用时间越长,系统运行速度会变慢,给普通用户的感觉就是“卡顿”“不跟手”。同时使用iPhone和安卓手机的“双木仓党”这种感受会更明显一些。
对于工程师来说,这个现象是有悖常理的。因为手机的硬件配置,诸如
CPU、
内存、GPU等不会随着手机使用时间变长出现过多损耗。另一方面,虽然每台手机里安装的
APP有几十上百个,但最常用的也一般在10个以内,安卓手机的高配置是可以支撑这些应用流畅运行的。
那么问题出在哪里?工程师向我们介绍,很重要一个原因是安卓系统的开放性,导致众多
APP在调用手机系统权限和资源时不克制乃至贪婪,甚至相互之间不断交叉唤醒,发生
CPU、GPU、I/O资源、网络带宽等资源不当占用,该快的时候不快,发生卡顿。
作为手机
操作系统,过去四年时间,MIUI一直在做这方面的管束。比如2013年MIUI V5推出对齐唤醒,把多次不间断唤醒管控为集中式唤醒;2015年MIUI7推出增强版对齐唤醒,续航时间比上一代MIUI6延长了25%。今年MIUI9,在资源管控方面可谓下了“重典”,重点分配资源给当前正在使用的APP,约束其他非活跃应用。同步实施的还有文件系统的升级,内存实时反碎片技术,核心组件拥塞控制机制,等等。出来的效果就是影响手机体验的核心几十项问题里,通过逐步克服优化,让手机的流畅体验发生了质变。接下来,在小米工程师的科普下,笔者带大家来深入了解这些背后的黑科技。
用来武装MIUI9的12项黑科技,“黑”在哪里? 根据小米的说法,MIUI9共采用了12项黑科技,来打造“快如闪电”的系统。它们分别是:应用启动加速,动态资源分配,关键场景响应加速,核心组件拥塞控制,持续自动清理,全新文件系统,文件系统缓存管理,内存实时反碎片,异常排除机制,提高通讯效率,无线数据包加速,深度复苏。由于文章篇幅有限,下面重点介绍其中5项黑科技技术。
1、动态资源分配 动态资源分配技术,表面上是手机系统对于各种资源如CPU资源、内存资源、I/O资源、网络带宽资源的合理分配,实际上背后需要非常庞大的数据支撑才能让各种系统资源合理分配。简单来讲,MIUI9系统大幅提高当前应用在资源分配中的权重,对高优先级应用进行了更细致区分。
其实安卓原生系统很早就设置了“前台应用”“后台应用”两个调度组,来管控资源分配。MIUI9更进一步,把介于前台、后台之间的应用行为比如通知栏应用放到第三个组,如果前台应用(即当前正在使用的应用)运行资源不足,会挤压“第三组应用”调用系统资源的份额,确保当前应用流畅运行。这个过程就像一个家长管理孩子们对零食、书籍、玩具……需求一样,不能无尽应允,也不能随时随地应允,必须加以合理管控和引导才能教出一个“好孩子”。
2、全新文件系统 MIUI9采用了与最新一代Android O系统相同的SDcardfs文件系统,这是安卓系统未来的发展方向。
在此之前,原生Android为了让各个应用之间数据
隔离,让A应用没法读取B应用数据,在系统中增加了一个叫“Fuse”的虚拟文件系统,当应用需要读写虚拟SD卡中的数据时,必须经过Fuse空间才可以传送到系统底层EXT4空间,然后系统底层和Fuse虚拟空间会进行多次往返的数据传送,最终再传送给系统前端,实现一个完整的操作闭环(在实际操作手机的体验中,这个过程是毫秒级的)。
因为“Fuse”虚拟文件系统和“EXT4”底层之间频繁的数据读写会对应用启动速度产生影响。根据Google在Pixel上的测试数据,通过“Fuse”虚拟文件系统随机写的速度损耗达30%-50%,而SDcardfs损耗则可以控制在5%以内,另外“Fuse”随机读取数据的速度损耗达到90%以上,SDcardfs可以控制在20%以内。这正是这种巨大的读写速度提升,最终呈现给用户的是App应用相应速度的大幅提升。
MIUI 9系统采用全新的SDcardfs文件系统后——这是最新一代Android O/Android 8.0采用的技术,代表着安卓系统未来的发展方向——应用启动速度有明显的提升。比如在小米内部测试中,游戏《阴阳师》在小米6上的启动速度由9秒迅速缩减至5秒左右,效果非常明显。
3、内存实时反碎片 内存实时反碎片也是MIUI9一项黑科技。那么什么是手机的内存碎片?举一个通俗的例子:如果我们把手机内存看作一个记事本,数据读写看作在本子上写入内容。随着手机启动,各种应用以及系统数据会不断写入内存中,这时候会出现记事本上某一页纸上没有写入内容(“一页纸”在内存中的单位是4kb),而前后两页均被使用的情况,这时我们可以把这页没有使用的“
纸张”看作一个内存碎片——对于一台4GB运行内存(RAM)的手机来说,这类碎片可能是几千个。
随着手机使用时间增长,手机内存中有可能会出现大量不连续的内存碎片,当有些数据的读写需要使用连续内存页时,虽然手机此时还有内存,但由于它是不连续的,从而导致应用数据无法读写。针对这个状况,安卓原生系统其实做了不少工作,它通过内存回收的方式“腾出”可以满足当前需求的连续内存页。
但遇到多任务切换或系统资源调用时,刚腾出来的A内存,如果此时你去做B操作,A内存数据已经被回收了;当你从B操作切回到A时,系统需要重新去找满足A的连续内存页并写入数据……如此反复倒腾,会加速了手机I/O硬件损耗,并且对系统流畅性大打折扣。
MIUI 9采用内存实时反碎片技术,通过复杂的算法来判断内存碎片是否可以被移动和整理,最大程度保证系统内存的实时连续性,以应对随时可能出现的连续内存数据读写需求,从而减少因为内存的不连续性导致的频繁回收和重写,让系统的内存读写时刻处于最佳状态,实现流畅运行。
4、文件系统缓存管理 和内存实时反碎片功能有所关联的是文件系统缓存管理技术。在手机打开存储空间里的一个视频或者图片时,手机系统需要先将文件数据写入系统内存,再通过读取系统内存数据将文件展示到用户眼前。
前面我们提到了当系统连续内存数据不满足当前操作所需时,会进行内存回收释放,这就可能导致部分热点文件的数据被频繁的回收和读取。
MIUI9文件系统缓存管理就是通过系统算法判断热点文件所使用的系统缓存,对它们加以保护,防止出现因为内存回收导致的数据反复读取现象。
5、核心组件拥塞控制 由于文章篇幅所限,最后再向大家介绍一个MIUI9黑科技——核心组件拥塞控制。
一般来讲,手机系统核心组件包括“广播”、“服务”、“界面”和“读取数据库”四大组件,每一个应用都包含了这四个组件。例如高德地图的发push消息(广播),在导航时告诉手机系统不要熄屏(服务),APP的操作界面(界面),在多任务后台停留(读取数据库)等等行为,都是通过“组件”来实现的。可以说所有APP在手机里的存在,都是表现为“组件的行为”。
不同APP组件之间存在资源的竞争关系,比如各个应用都需要读取数据库,但系统一次只会允许一个应用的系统组件读取,其他应用的“组件行为”就需要排队等候。
为了能够让自己的系统组件得到快速响应,某些应用会采取一些非常规手段进行插队,这就可能导致其他应用的组件需求无法得到及时满足,从而导致系统出现卡顿、耗电等情况。
对此MIUI 9引入核心组件拥塞控制技术,当发现一些非常规组件频繁发起响应请求,长时间占用CPU、内存等硬件资源时,系统会对其行为进行判断,如果不是紧急需求,便会降低该应用的优先权,比如限制其最大可用CPU资源,从而保证其他的系统组件获得足够的硬件资源支持。
当然,除了上面笔者所讲到的几项黑科技技术,MIUI 9还采用了关键场景响应加速、持续自动清理、异常排除机制、无线数据包加速等等黑科技,这里就不一一展开了,下次有机会再找小米工程师来进行科普。总之在这些黑科技加持下,小米有底气喊出“MIUI9快如闪电”的口号,并最终得到米粉和媒体的认可。
死磕“快体验”,MIUI9升级计划按批次有序推进 快如闪电的MIUI9还在路上。
根据发布会公布的官方消息,MIUI9开发版对小米机型的适配,分为3个批次,第一批分别甄选了一个小米机型(小米6)和一个红米机型(红米Note4X高通版),及一部新手机(小米5X)。第二批为小米MIX、小米Note 2、小米5系列等热门机型,第三批为众多红米和红米Note系列机型。MIUI9稳定版升级计划以MIUI论坛公告和MIUI官方微博/微信为准。
从机型适配的数量来看,MIUI9不亚于以往版本,甚至对于米粉期望比较低的小米2/2S都进行了适配。不过工程师告诉我们,下一代MIUI系统适配小米机型的数量肯定会减少,原计划中小米2/2S是不在适配序列的。并且将来为了确保每个机型更爽快的系统体验,还在讨论以“24个月”为标准规划MIUI新版本的升级适配工作。
据小米工程师介绍,今年的适配计划确实与往年不太一样。以往MIUI新版本发布,是摧枯拉朽式的对齐发布,快速升级,快速普及。今年MIUI9稳扎稳打,主攻品质,主攻“快如闪电”,先在部分机型上验证成功模式,再复制到其他机型上,确实需要一个过程。据称2017年结束前工程师将会集中精力有序推进MIUI9对小米机型的适配工作。所谓“鱼与熊掌不可兼得”,期待早日用上MIUI9的米粉要耐心等待咯。
现在MIUI 9首批内测已经结束,8月11日也是MIUI9第一批开发版发布时间,小米6、小米5X、红米Note 4X已经可以正式升级MIUI9开发版。从过去一段时间来看,10万米粉和主流媒体都给予了MIUI9高度评价,认可它的快如闪电。认可了发布会上MIUI负责人洪锋所提的“MIUI 9也许是最快的安卓系统”的说法。
随着MIUI 9的不断适配升级,将会有更多人体验到全新MIUI系统带来的流畅体验。笔者也希望看到更多手机厂商在
操作系统的基础体验上更加用心和负责,让国产手机的操作体验再上新台阶。