Article / 2026/05/31

性能优化 (三十四) 卡顿介绍及优化工具 选择

性能优化 (三十四) 卡顿介绍及优化工具 选择 的技术笔记。

卡顿介绍及优化工具 选择

背景介绍

  • 很多性能问题不易被发现,但是卡顿很容易被直观感受
  • 卡顿问题难以定位
  • 卡顿问题难在哪里
  • 产生原因错综复杂:代码、内存、绘制、IO?
  • 不易复现:当时场景相关

CPU Profiler

  • 图形的形式展示执行时间、调用栈等

  • 信息全面,包含所有线程

  • 运行时开销严重,整体都会变慢

  • 使用方式

  1. Debug.startMethodTracing("")
  2. Debug.stopMethodTracing();
  3. 生成的文件在SD卡:Android/data/packagename/files

Systrace

  • 监控和跟踪API调用、线程的运行情况,生成Html报告
  • API18以上使用,推荐TraceCompat
  • 使用方式
  1. python systrace.py -t 10[other-options] [categories]
  2. https://developer.android.com/studio/command-line/systrace#command_options
  • 优点
  1. 轻量级,开销小
  2. 直观反映CPU利用率
  3. 给出建议

StrictMode

  • 严格模式,Android提供的一种运行时检测机制

  • 方便强大,容易被忽略

  • 包含:线程策略和虚拟机策略检测

  • 线程策略

  1. 自定义的耗时调用,detectCustomSlowCalls()
  2. 磁盘读取操作,detectDistReads
  3. 网络操作,detectNetwork
  • 虚拟机策略
  1. Activity泄漏,detectActivityLeaks()
  2. Sqlite对象泄漏,detectLeakedSqlListObjects
  3. 检测实力数量,setClassInstanceLimit();

Giscus 未启用:请在 src/site.config.ts 中配置 repoId 与 categoryId。