Skip to content
阅读进度

启动慢,应该从哪里下手? ​

返回 性能与稳定性 目录

标准回答 ​

先分清冷、温、热启动并定义测量终点,再用 Trace 找出阻塞首屏的工作;优化关键路径,最后用同条件多次测量验证。

关键机制 ​

  • 冷启动需要创建进程并初始化;温启动复用部分状态;热启动通常恢复已有页面。不同场景不能混在一起比较。
  • 重点看进程创建、ContentProvider、Application、Activity、布局加载、首帧渲染,以及同步 Binder、磁盘 IO、锁等待。
  • 策略包括按需初始化、拆依赖、把合适任务放后台、ViewStub 延迟非首屏内容,以及针对热点代码使用 Baseline Profiles。

通俗例子 ​

如果首屏只需要账号和基础设备状态,就不要在首帧之前同步加载完整历史记录。先让必要界面可用,再加载不影响首次交互的数据。

易混淆点 ​

TTID 是首次显示时间,TTFD 是完整可用时间。自定义“手指按下到首帧”指标包含输入链路,不能直接等同官方启动统计。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。