文章摘录自腾讯公众号:原文链接
写在前面的话
笔者于2011年7月因机缘巧合进入到智能手机app的研发行列,经历了android操作系统从1.6版本到9.0的整个系统的过度,随着一个年轻的操作系统的成长,深刻的经历了各种的问题以及同行业的一些优秀团队,对整个生态的各种持续性的优化和探索。当看到腾讯公众号这篇关于华为EMUI团队对android系统的治理过程。有比较深刻的感触,同时表示对这个行业的开发者以及爱好者的敬意。国内的小米公司 ,锤子,vivo 包括笔者之前所在的大可乐等手机厂商都曾投入了巨大的人力财力在探索对android系统及独自UI系统的优化上
下面就以华为的优化案例来看看究竟为什么国产智能手机的竞争如此激烈,并且有12年左右的雨后春笋到19年的时候仅仅剩下几个巨头在鼎足而立。
什么最影响用户体验
经过大量的调查和访谈,团队很快发现,最为安卓用户诟病的,是长期使用后的卡顿,这也是影响消费者体验的第一大障碍(可以说是在android没有对权限和api规范之前安卓手机普遍存在的情况)。
一个热爱电子产品的同事和我讲述过他的智能手机使用经历。在安卓手机进入大屏年代后,2013年他购买了当时做得最好的安卓手机S和H,用的还是顶级配置,但用了一年多后,即使每晚不做任何操作,都会消耗百分之十几的电量;更让他无法忍受的是,卡顿、死机几乎成了家常便饭,必须要不断重启和清理内存才能勉强使用。用他的话说,不是我在用手机,而是手机在用我。
为什么即便拥有很高的硬件配置,即便是当时最好的安卓手机,也会面临更多的稳定性和流畅性问题?是哪些因素导致了长期使用后的卡顿和死机?我们决定“啃”下卡顿这个最大的硬骨头。EMUI团队成立了专门的“特战组”集中攻关。特战组详细分析了安卓系统下四百多台几十种机型的手机,经过反复的问题重现和软硬件的全栈分析,共发现以下四个导致卡顿、死机的主因:
1、安卓系统的松散管理,应用对资源的使用缺少规则,就像建了很多道路却没有交通规则,最终是拥塞和混乱;
2、系统硬件资源协同缺乏,仅仅靠增加RAM(运行内存)资源不能解决问题,而是要更有效地调度与使用资源;
3、存储碎片累积效应,随着使用时间的增加,存储碎片化日益严重,数据读写速度明显下降,系统卡顿频繁、加重;
4、APP膨胀严重,特别是头部应用功能不断堆积,导致产生的数据急剧增长,抢占系统资源严重,拖累系统运行速度。
这些问题,几乎涉及到从芯片到软件全栈,如果只是见招拆招被动应对,是不可能真正解决问题的。必须全面系统分析,才能拿出全面彻底的解决方案。但安卓系统本身极其庞大,代码行数过亿,在这么庞大的系统上“动手术”,挑战可想而知。会不会在优化的同时导致其它兼容性的问题?有没有足够能力实现预定的目标?
但是,带着有问题的引擎勉强飞行,只会酿成更大的事故。畏缩不前不如放手一搏。通过大量细致的分析和研判,我们决心破釜沉舟——干!最终,经过专家的反复诊断和讨论,拿出了5大“药方”来一一解决上述问题。
简单来说,人工智能是核心,对应用侧