- 冷启动治理方案
- 存量解决
- 增量管控
- 存量解决
- 初始化 - 闪屏页/广告页业务 - 首页
- 冷启动框架
- 问题
- 初始化100+组件,代码混乱,耦合严重
- 依赖关系复杂,不易管理
- 无优先级规则,拖慢启动流程
- 初始化无用组件,造成耗时
- 思路
- 提供初始化框架,规范初始化流程
- 梳理初始化项,确定优先级
- 解除上下层库耦合关系
- 建立进程机制,去除无用组件
- 问题
- 冷启动框架
- 高优先级同步
- App强依赖的一些基础库
- 启动过程有着硬性同步关系且依赖极少,但对冷启动有很大影响的业务逻辑,阻塞启动进行的业务流程
- eg:图片库/网络库/定位/广告初始化
- 高优先级异步
- 初始化完成时机对业务没有重大影响的基础库
- eg:基础库,sniffer,logan等
- 低优先级同步
- 业务组件
- eg:IM组件,分享组件,业务模块
- 低优先级异步
- 调用时间较晚
- eg:地址sdk,badge,loadInfo加载
- 高优先级同步
- 规范初始化流程
- 高优先级同步 -》 (低优先级同步,高优先级异步) -》 低优先级异步
- 注册机制
- 进程 - 模块
- 解决
- 主库和业务解耦
- 建立优先级规则,又InitManager统一管理
- 梳理初始化项,按照依赖关系和业务属性,指定优先级
- AbsInit接口方法,指定进程,避免无用初始化