# 卡顿这件 “ 小 ” 事
手机,为啥会卡顿?
这个问题相信d都有不少自己的看法,毕竟换手机的原因千千万,系统卡顿占一半。
谁也不希望咱们在寒风中打开镜头拍摄或者扫码,结果需要白白等待个几十秒的情况发生吧。
造成系统卡顿,有两大根本性原因:
其一便是设备本身:硬件是有极限的。
这几年安卓机器的内存容量可以说是在不断变多,从 8G、12G、一直飙升到 16G 的都有。
容量变大确实能带来不错的体验,但是如果内存本身比较小,就更依赖于软件调教。
举个例子,咱们平常说的手机内存空间就好像是一个市区里最繁华的十字路口,而路上的车辆就是我们系统里流转的内部资源。
但不管咱们多少车道,终归都是比车的数量要少的,车辆数一上来,这十字路口分分钟就塞满了。
这时候如果咱们再打开一个 App,就好像是给堵住的路口再去调配一辆大货车过去一样。
那肯定是没法通过,不卡顿才奇怪呢。
所以,面对着有限的硬件条件,软件优化就成了一个解决问题的重中之重。
但是,软件不是万能的。
对于拥挤的内存十字路口来说,软件就是调度红绿灯的艺术,可再强的调度也有力所不能及的时刻。
这种问题由来已久,有个非常形象的名字 —— 锁竞争。
就拿咱们现在用的手机来举个例子,得益于大内存的硬件基础,我们可以在后台同时打开不少应用。
但是对手机系统来说,如何识别这些不同应用之间的优先级,如何保证优先供给这些应用计算资源就成了一个老大难的问题。
这就有点像两车道合并成为一车道,如果没有合适的指挥,那结果就是大眼瞪小眼,大家一起堵在路上。
这些经典问题可以说是和咱们系统的流畅性不共戴天,那么手机厂商又是如何弱化这些问题的呢?
就拿最近自己在用的 ColorOS 来做个示范。
# ColorOS 是怎么做的?
对厂商来说,想要解决好系统卡顿,可不是一件简单的事情。
毕竟很多卡顿可以算是偶发问题了,可能一旦错过就再也复现不出来。
再加上安卓这么多年积累下来成山的代码,想要把系统底层给优化好,这难度无异于在沙里淘金。
而 OPPO 最先搬出来的武器,就是 ColorOS 13 上的超算平台。
对手机系统来说,ColorOS 超算平台就像是一个 “ 微操大师 ” 一样,精打细算每一丝一毫的性能。
就如同AI 操纵下的 100 条小狗,可以踏平 20 坦克 ▼
毕竟芯片和发热是一对天敌,如果咱们一味的解开芯片的功耗墙,温度锁,或许短时间内能获得堪比德芙的流畅体验。
但是温度上来之后,对整体手机的握持感,甚至是手机里硬件的寿命都会带来毁灭性的打击。
过犹不及,所以如何在性能和功耗之间获得平衡,对手机来说才是最重要的。
ColorOS 超算平台则是通过数百万次的数据拟合和仿真计算,最终得到了一个符合我们每个人独一无二的从场景到硬件垂直整合的算力模型。
在系统调度上,不是粗暴的提高 CPU,GPU 的频率那么简单,而是更像一个智慧调度的交通中枢一样,不呆板的根据每天定好的时间来切换红绿灯,而是结合当下的车流量因地制宜。
南北方向车流量大,那就多给一些绿灯,东西走向没啥车,那我可以多红灯一会再一起放行。
看上去调度好像是复杂了不少,但是对驾驶员,对消费者来说却不需要管那么多底层的道理,体验是实打实的变好就行了。
除了让软件优化更合理,交通灯控制得更灵敏之外,OPPO 还对系统的内存分配与回收机制设计重新下手,借鉴了微内核的设计思想。
就像给路上修了一条公交车专用通道或者是应急车道一样,给高优先级的应用额外的调度通道,减少他们的相互竞争,大大的减弱了之前提到的 “ 锁竞争 ” 问题。
通过这样的并行计算,OPPO 改善了内存使用冲突的问题,同时还通过 “ 大锁化小锁 ” 的设计思想大大的降低了软件重载场景下的丢帧率。
根据 UP @小白测评 的测试结果,可以可以发现当我们打开大量 APP 时,开启锁竞争优化技术后的相机打开时间明显快于未打开相关技术的设备。
这一帮优化组合拳下来,效果好不好那可不是光是 OPPO 自己说了算的。
实际上在手机测试领域和用户口中,ColorOS 13 都有着不错的声量。
更是已经连续三年获得了鲁大师年度最流畅手机 UI 的奖项。
在我们常见的桌面滑动、网页加载、APP 使用以及照片查看、文件拷贝、开机自启动这几个项目上都取得了不错的成绩。
这也是手机行业从业者,对 OPPO 在系统背后做的如此多优化的一种认可吧。
为了让系统更加流畅,绿厂做的优化可不止底层设计一个维度,还在 UI 动画设计上下了不少心思,让系统用起来更自然真实。
除了立身之本水生设计以外,全新设计到 4.0 的量子动画引擎延续了 “ 质量 ” 这一概念,优化 61 个动效,让整体的 UI 动效更加跟手,特效也是更为立体。
就拿进入多任务状态举例,系统会多等咱们一下,等咱们松开手指才真正进入多任务后台,变的更加符合体感逻辑。
调节音量也是如此,在音量调节到极限后,音量控件还会随着咱们的操作做一个动态反馈。
另外,ColorOS 还考虑到了咱们使用手机的连贯性,在网络优化上也下了不少心思。
推出了 LinkBoost 4.0,通过 AI 预测的方式,让系统提前知道即将进入弱信号地铁段,从而可以提前加载一些数据,这样当咱们在进入信号不好的地方的时候,就可以读取那些提前加载的数据,从而不觉得卡顿了。
# 系统变快之路漫漫
总的来说,ColorOS 为了让咱们的手机更流畅一点点,功耗更少一点点,性能更快一点点,可以说是默默在我们看不见的地方做了不少努力。
除了自己默默努力以外,还牵头响应国家号召,带上其他人一起努力。
联合全球高校和企业一起,在计算机底层结构的存储、计算调度、内存、锁优化等方面开始布局努力。
人多就是力量,把一个大问题,拆解成无数个小问题来分布解决,托尼也托朋友打听了一下他们最近都在研究啥:
部分 OPPO 实验室研究内容课题:
说实话,我还蛮期待,也蛮敬佩OPPO在流畅方面上花心思的。
在系统流畅性上下的优化功夫,或许不如卷影像一样显而易见,在这个上面努力半天,可能就像百米赛跑从 9 秒 58 提升到 9 秒 55 一样。
每一点流畅体验的提升,背后都有大量的科研技术和人员做支撑。
从业人员知道这东西多牛逼,但是消费者只会觉得“这系统用着挺顺手”。
但是这些基础的东西又不能没人做,绿厂这次通过原理根因找到行业技术突破口,算是用自己的行动开了一个好头。
今年 ColorOS 13 刚更新的时候,其实不少人刚开始还以为只是换了一套 UI 的事。
但其实这半年多的体验下来,我们可以很明显的发现,ColorOS 13 最大的影响,还是在水面之下,那些看不见的地方。
OPPO 这次,不但学到了水的外形,连水的内核都给一并学到了。
水,可不就是流畅么。