作者:苏彦郊(木磊)
Android 项目一般使用 gradle 作为构建打包工具,gradle 简洁、动态的功能特性为人津津乐道,同样,构建执行速度缓慢的缺陷也一直为人诟病。
近年来,随着优酷功能特性日益丰富,优酷的代码规模也急剧增加,同时,庞大的代码规模也带来了构建耗时的不断增加。整包构建耗时一度高达35min,严重影响集成与迭代效率。因此构建速度优化势在必行。截止 2021年 11 月份,优酷构建耗时优化取得较为理想的优化结果(如下),现将构建速度优化的实践方案记录成文。
android构建类型 |
2020年 |
2021 |
android debug 包构建耗时 |
12min |
2.5min |
android release 包构建耗时 |
35 min |
12min |
方案与收益统计图:
优化思路
技术优化类项目一般采用照设定数据指标、技术优化、成果防腐化三个维度展开。套用技术优化类项拆解可知,我们需要完成如下三个子项目:
- 设定数据指标:即收集与选取核心优化的数据指标,体现成果价值。本文选取构建耗时、构建失败率、小时维度构建次数等指标作为成果优化的数据支撑;
- 技术优化:通过影响构建速度的影响因素可知,包括软件与硬件两部分,所以构建速度优化可分为软件优化与硬件优化两大方向;
- 成果防腐化: 即维持技术优化指标不恶化,保障优化成果。
接下来,我将按照设定数据指标与结果防腐、技术优化——软件优化、技术优化——硬件优化三个部分展开。
优化方案
一、设定数据指标与结果防腐
优化类项目需要建立健全相应的数据指标体系,借由数据评判体积优化项与优化方案进行有效性判定。进行构建优化前,笔者基于阿里巴巴Aone FaaS( Severless 服务)平台搭建了数据评判与监控大盘。该大盘有构建类型、构建时间、构建成功率、构建任务耗时等多项指标,满足构建优化项目需要根据类型、任务频率、高耗时任务排查的需求。
完成相关数据能力建设后,通过构建关键数据指标——构建耗时与构建成功率的追踪和分析,进而得出构建耗时的主要影响因素为高耗时任务,构建成功率的主要影响因素为不合理的构建任务。因此,我们可以通过高耗时任务报警与不合理任务报警,快速发现并分析构建速度恶化情形,进而保障构建耗时优化成果。
二、软件优化
1、构建侧去atlas
Atlas是伴随着手机淘宝的不断发展,进而衍生出来的一个运行于android系统上