华为手机操作系统往事(14)

从EMUI5.0版本立项开始,交付采用了全解决方案运作模式,将用户交互、OS(操作系统)、海思、通信协议、安卓原生多个模块纳入统一规划,同源设计、同源开发、同源测试。解决方案依赖关系识别好、管理好,计划对齐。同时定下海思Kirin、高通共主干目标(MTK平台2018并入主干,至此,华为EMUI一条主干兼容三大硬件平台),代码合入主干严格受控、质量优先,保证了主干的代码质量。各产品不再需要拉分支,到发布的点直接按对应的产品出版本即可。主干版本每周可实现一轮全量的自动化测试,质量越来越好,交付也越来越高效,并且这个能力可持续传承。共主干的实现,虽然让产品线和软件研发团队都受到了不少“折磨”,但今天的收益让所有的痛苦都变得很值得。

架构是软件的骨架,是软件团队共同工作的基础和统一语言。EMUI基于安卓原生系统,总代码行数过亿,几乎是无线产品线产品代码行数的两倍。这么大规模的代码,每年都要做大版本升级,而且安卓原生代码每年的更改量和新增量都超过上千万行。架构的模糊和耦合,让新增功能的开发,现有功能的修改和变更,甚至BUG的修复都极其痛苦,血肉骨架混作一团,牵一发而动全身。这样的系统其实已经很难维护和持续开发。架构的选择和解耦成为不得不做的事情。

推荐阅读