0%

冷启动

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