背景

app的第一印象

启动分类

  • 冷启动
  • 热启动
  • 温启动

冷启动

  • 耗时最多,衡量标准

    1. 整体的流程<br /> clickEvent -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl

热启动

  • 最快 后台 -> 前台

温启动

  • 较快 LifeCycle 重走Activity生命周期

相关任务

冷启动之前

  • 启动App
  • 加载空白Window
  • 创建进程

随后任务

  • 创建Application
  • 启动主线程
  • 创建MainActivity
  • 加载布局
  • 布置屏幕
  • 首贞绘制

优化方向

  • Application和Activity生命周期

启动时间测量方式

  • adb命令
  • 手动打点

adb命令

  1. adb shell am start -W packagename/首屏Activity

执行上述命令,我们可以看到有三个时间
ThisTime: 2669
TotalTime: 4330
WaitTime: 4358

ThisTime : 最后一个Activity启动耗时
TotalTime: 所有Activity启动耗时
WaitTime : AMS启动Activity的总耗时

  • 线下使用方便,不能带到线上
  • 非严谨、精确时间

手动打点

  • 启动时埋点,启动结束埋点,两者差值