超好的包体积优化教程,不但仅是优化!

源代码 2024-8-31 03:26:36 37 0 来自 中国
作者:yechaoa
市面上有很多优化方案,但是都没有一个完备的链路体系,现在它来了,本文将带你进阶新高度,不管是面试、绩效KPI,照旧报告宣讲,都能让你游刃有余!
前置必读:
Android包体积优化(通例、进阶、极致)
涵盖各阶段全面的优化方案。
留意本文更方向于方法论和规划本事,重点倾向于怎样做好一个技能topic,假如单纯的想看技能方案,可以搜索前置必读。
一、配景


  • 提拔下载转化率
  • ...
  • 提拔更新率,这个是鲜有人提到的,二次下载同样告急,它能推动业务快速落地。
二、近况


  • 最新版本?MB,突破80大关?100大关?竞对?
  • 近6个月匀称每个月增速?MB
  • 近6个月匀称每个版本更新周期(7天?10天?)
输出报表
三、目的

镌汰30MB & 低落30%
四、近况详细分析


  • 图片占比15%
  • 代码占比25%
  • so文件50%
  • 其他10%
连合项目分析,输出每项占比背后的详细因素(计划花哨?业务复杂?架构公道?)
输出饼图
五、优化思绪


  • 压缩到场打包的文件
  • 镌汰到场打包的文件
六、规划思考


  • 怎样包管稳固性?
  • 怎样长效管理?
站在更高的角度去思考标题
七、里程碑

2.jpg

  • 信息公示
  • 确保进度稳中推进
  • 有风险及时寻求资源支持
八、抓手


  • Android Studio
  • ApkChecker
  • ClassShark
  • ...
  • 产出具有项目特色的工具
九、技能大图

3.jpg
报告示例
十、图片优化

手动 -> 脚本
十一、代码优化

5.jpg 十二、远程so

须要熟悉打包流程,知道Gradle的各种Task实行在干什么事。
打包阶段,在归并apk之前,把须要远程的so文件上传至远端,然后剔撤除。
Flutter的so远程这方面没啥资料,提一下,源码搜一下FlutterLoader,继承FlutterLoader重写startInitialization,原理就是干预原有的so文件加载路径。
12.1 下载流程
沉淀通用的下载SDK

  • 网络状态管理
  • 下载任务优先级调理
  • 断点续传
  • ...


  • 12.1.1 启动下载(闲时)
闲时下载:用户是无感知的,纵然失败,也不须要交互情势体现。


  • 12.1.2 按需下载
按需下载:下载流程与闲时下载一样,但交互体现情势不一样,须要让用户感知你在干什么、什么进度,提供一个loading页承载。
8.jpg 自检:不肯定是我们代码的标题,大概是用户网络不可用、存储不敷等
十三、测试


  • 兼容性:android 5.0-12.0
  • 是否重复下载、是否可用(32/64)
  • 断网、弱网
  • 覆盖安装
  • 前台退背景
  • ...
十四、监控诉警

9.jpg 14.1 埋点

  • success
  • error code/message
  • so name
  • retry
  • demotion
  • storage size
  • download type
  • download time
  • 装备信息
  • 网络信息
  • 用户信息
  • ...
14.2 监控

  • 下载乐成率
  • load乐成率
  • loading页打开乐成率
  • ...
14.3 告警
?分钟?次失败
告警情势包罗但不限于钉钉群、微信群、短信、电话等。
14.4 排障

  • 排障指南
  • 数据库底表查询sql
十五、长效管理

打包后置卡口的计划原理:
10.jpg

  • 打包过程中会对资源文件、代码文件、jar/aar等文件举行归并,既然知道有哪些文件,就可以知道这些文件的巨细,就可以输出一个file size的文件作为当前版本的基线。
  • 阈值设置信息可写死,可设置。
十六、效果


  • 优化前、优化后对比
  • 竞对 对比
  • 下载时间对比
  • 安装时间对比
  • ...
输出报表
十七、未来规划


  • 白名单 logo?
  • 沉淀方法论?
  • 流程工具化、智能化?
  • 月度陈诉?
  • 数据大盘?
  • ...
十八、代价&意义


  • 技能:沉淀通用组件?创新flutter?
  • 团队:影响力?
  • 公司:镌汰带宽,整年节省?W经费
  • 用户:下载时间镌汰?安装时间镌汰?
  • 社会:每次下载镌汰?M流量,整年节省流量?亿
  • ...
十九、思考


  • 须要做到极致吗?理论上启动非必须的图片、文件、so都是可以远程的。(减肥是要越瘦越好吗?)
  • 极简包?
二十、面试标题


  • 为什么选用tinypng,原理是什么,另有其他方案吗?
  • 远程so的选定尺度是什么?
  • 支持断点续传吗?
  • 会重复下载吗?
  • 下载可以根据网络选择吗?
  • 有文件完备性校验吗?
  • 有下载优先级吗?
  • 怎么避免64位装备下到32位so文件?
  • so文件更新之后会在装备上与老的版本共存吗?
  • 兜底方案是什么?
  • 另有哪些可以优化的地方?
  • ...
末了


  • 顶级厨师在线烹调,做好了本身吃,不负责喂
  • 多思考,深度思考,可以梦到的那种
  • 多搞点格式,多体现个人部门,纵然没有技能深度
  • 脚色转换,个人、团队、产品、拉新运营、用户、公司、社会...
  • 技能代价、业务代价
  • 别忘了三连 ~
不太喜好理论,更喜好实际操纵的,可以搜索检察,但是照旧发起各人作育一些规划类头脑,毕竟往上走,总有一天是须要出规划和做一些管理的事变的。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-12-4 02:10, Processed in 0.188657 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表