Android 性能与稳定性专题

从启动慢、滑动掉帧或 WebView 崩溃进入,先确定要测量的现象,再收集能解释它的证据。每条路线都连接到具体的工具操作与验证步骤。

按症状开始排查

现象第一篇接着做什么
冷启动慢,首帧与可用时间混在一起启动指标:TTID、TTFD 与 Macrobenchmark固定启动条件,再用 Perfetto 定位关键路径
有卡顿但不知道 trace 怎么抓、怎么看Perfetto 入门与抓取流程复现一次问题,检查主线程、调度和帧时间
WebView 白屏或收到渲染进程退出回调WebView 渲染进程崩溃与恢复区分退出信号与根因,验证销毁和重建流程
Compose 列表滑动不流畅LazyColumn 性能排查使用 release 构建,检查列表身份、状态读取与帧耗时

从测量到回归的阅读顺序

  1. 定义启动指标:分开冷、温、热启动以及首帧与可用时间。
  2. 抓取并阅读 Perfetto trace:把用户操作与线程工作、等待时间对应起来。
  3. 选择一个有证据支持的瓶颈进行修改,保留设备、数据集、构建类型和采样条件。
  4. 用 Macrobenchmark 重复测量,比较分布并检查回归。
  5. 若问题表现为进程退出,沿 WebView 稳定性排查 收集事件;性能 trace 不能单独证明崩溃根因。

核心文章

运行时、内存与图形性能

性能排查框架

  • 先确认指标:P50、P90、P99、首帧、掉帧、内存峰值。
  • 再抓证据:Perfetto trace、log、ANR trace、heap dump、benchmark。
  • 然后拆链路:主线程、Binder、I/O、渲染、GC、调度。
  • 最后做验证:本地 benchmark、灰度监控、回归门禁。

下一步

如果性能问题和 UI 状态更新有关,继续阅读 Jetpack Compose 深度解析。如果瓶颈来自模型推理、NPU、功耗和热管理,转到 Android 端侧 AI。如果问题来自构建、测试和发布链路,转到 移动端工程化。