背景
app的第一印象
启动分类
- 冷启动
- 热启动
- 温启动
冷启动
耗时最多,衡量标准
整体的流程<br /> clickEvent -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl
热启动
- 最快 后台 -> 前台
温启动
- 较快 LifeCycle 重走Activity生命周期
相关任务
冷启动之前
- 启动App
- 加载空白Window
- 创建进程
随后任务
- 创建Application
- 启动主线程
- 创建MainActivity
- 加载布局
- 布置屏幕
- 首贞绘制
优化方向
- Application和Activity生命周期
启动时间测量方式
- adb命令
- 手动打点
adb命令
adb shell am start -W packagename/首屏Activity
执行上述命令,我们可以看到有三个时间
ThisTime: 2669
TotalTime: 4330
WaitTime: 4358
ThisTime : 最后一个Activity启动耗时
TotalTime: 所有Activity启动耗时
WaitTime : AMS启动Activity的总耗时
- 线下使用方便,不能带到线上
- 非严谨、精确时间
手动打点
- 启动时埋点,启动结束埋点,两者差值