口红|5年磨一剑|优酷Android包瘦身治理思路全解

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解

文章图片

口红|5年磨一剑|优酷Android包瘦身治理思路全解


稳定性、性能、包大小 , 在移动端基础用户体验领域“三分天下” , 是app承载业务获得稳定、高效、低成本、快速增长的重要基石 。 其中 , 包大小对下载转化率、拉新拉活成本等方面的影响至关重要 , 这在业界已经成为共识 , 近年来头部app针对下沉市场的极小包策略 , 更是将包大小的价值提升到了极致 。 优酷在Android包大小领域 , 有长达5年的持续投入、实践和积累 , 尤其是在近2年逐步进入低成本可持续治理的健康状态 。 现将这些思考、方案设计、技术建设、治理实践统一汇总整理成文并分享出来 , 希望能够帮助更多同学在所负责或参与的app中 , 更好的进行包大小治理 。
本文聚焦于整体治理思路 , 以治理实践为依托 , 讲述瘦身技术、治理模式、治理策略 , 以及背后的思考与取舍 。
五年治理回顾 作为开篇 , 先给出优酷近5年包大小变化情况:

以2020年9月为分水岭 , 从治理模式角度 , 可以将前后划分为两个“风格迥异”的阶段:专项治理、常态治理 。 包瘦身治理也属于一种软件工程 , 接下来围绕“术”、“道”、“人”三个维度 , 展开回顾和总结:
1.1 专项治理3年:三次两反弹
自2017年初至2020年9月这3年时间 , 共经历三次专项治理以及两次反弹 。

2017.05 - 2018.03 , 第一次专项治理 。 在瘦身效果上 , 从最高点73MB降低到51MB , 瘦身比例约30% , 这次瘦身专项的最大价值 , 是积累了宝贵的实践经验:
技术手段 。 由于当时几乎没有积累 , 采用的技术手段相对常规且具有单点性 , 主要包括:分析并下线无用业务/功能模块、远程化边缘业务、图片压缩矢量化等 。治理策略 。 缺乏整体目标掌控和拆解 , 对于头部问题进行单点改造 。组织形式 。 比较松散 , 涉及范围窄 , 参与人数少 。2018.04 - 2018.09 , 第一次反弹期 。 期间使用“模块级”包大小卡口作为管控手段 , 由于缺少相关分析技术支撑 , 申请方和审批方对存量增量情况都缺少清晰一致认知 , 导致管控逐渐流于形式 。 与此同时 , 包瘦身治理优先级降低 , 前面负责治理的架构同学撤出 , 虽然架构团队依然负责跟进相关事项 , 但几乎没有主动投入治理 , 包大小接近自然状态下的“野蛮生长” 。

2018.10 - 2019.02 , 第二次专项治理 。 在瘦身效果上 , 从最高点80MB降低至40MB , 瘦身比例50% , 除了实践经验的持续积累 , 在技术手段上呈现出主动探索、初步沉淀几个特征:
技术手段 。 远程化大规模使用:远程Bundle、远程so , 几乎所有能远程部分都进行了相关改造;业界瘦身手段尝试:代码系列瘦身(混淆精简、同功能模块统一、无用功能模块下线)、资源系列瘦身(裁减、混淆)、整包瘦身(apk的7z压缩、R文件合并裁减) , 对其中约一半技术手段进行了应用;单点分析技术探索:主要集中在资源方面 , 包括无用、重复、相似、大尺寸、无透明度png、图片矢量化、多维度 , 利用分析结果作为瘦身点改造和分发的输入 。


推荐阅读