借助 ProfilingManager API,您可以从搭载 Android 15(API 级别 35)及更高版本的生产设备中收集真实用户性能剖析数据,例如系统跟踪记录和 Java 堆转储。它支持两种收集机制:应用驱动的配置文件,其中应用控制配置文件收集的开始和停止(Android 15 及更高版本);以及基于触发器的配置文件,其中系统会根据您在 Android 16(API 级别 36)及更高版本中注册感兴趣的事件来处理捕获。
本指南涵盖了以下主题:
- 捕获配置文件:如何启动和停止应用驱动型配置文件录制,以及如何注册基于触发器的配置文件录制。
- 检索和上传配置文件:如何使用
adb在本地检索配置文件,或使用WorkManager在后台上传配置文件。 - 分析配置文件:如何在 Perfetto 界面中直观呈现配置文件、使用 PerfettoSQL 查询配置文件、批量分析跟踪记录以及使用 AI 分析配置文件。
- 调试案例研究:如何端到端应用
ProfilingManager来调试 ANR 和调试 OOM 崩溃。 - 速率限制和收集行为:如何了解生产环境中的速率限制和收集行为。
- 本地调试:如何使用调试命令进行本地性能分析。
支持的个人资料类型
ProfilingManager 支持收集多种类型的性能剖析数据,以便您针对应用中的特定性能问题进行分析。您可以直接使用平台 API 或使用 AndroidX Core 构建器来配置请求:
- 系统跟踪记录:使用
PROFILING_TYPE_SYSTEM_TRACE或SystemTraceRequestBuilder捕获。- 适用于诊断卡顿、分析延迟时间和进行常规性能调试。
- Java 堆转储:使用
PROFILING_TYPE_JAVA_HEAP_DUMP或JavaHeapDumpRequestBuilder捕获。- 捕获应用 Java 堆对象图和大小的快照,以便检测内存泄漏和优化内存。
- 堆分析报告:使用
PROFILING_TYPE_HEAP_PROFILE或HeapProfileRequestBuilder捕获。- 跟踪一段时间内的原生(或可选 Java)内存分配情况,以帮助优化内存用量。
- 堆栈采样:使用
PROFILING_TYPE_STACK_SAMPLING或StackSamplingRequestBuilder捕获。- 对线程调用堆栈进行采样,以帮助您了解代码执行情况并分析 CPU 使用情况。
将 ProfilingManager 与 AI 智能体集成
您可以使用 AI 编码智能体将 ProfilingManager 集成到您的应用中。例如,在 AI 编码智能体中运行以下提示,以设置“应用无响应”(ANR) 触发器收集,并将 </path/to/codebase> 替换为应用的路径:
Read https://developer.android.com/topic/performance/tracing/profiling-manager/trigger-based-capture
and https://developer.android.com/topic/performance/tracing/profiling-manager/upload-worker
and integrate ProfilingManager ANR trigger collection (TRIGGER_TYPE_ANR) into my
app at </path/to/codebase>, including registering the result listener after app
startup completes and scheduling a WorkManager upload job when a profile is
received.
您可以调整此提示,以设置其他系统触发器(例如 TRIGGER_TYPE_OOM),或使用应用驱动型性能分析指南配置应用驱动型配置文件捕获。集成后,使用用于本地性能分析的调试命令在本地测试您的设置,并使用 AI 智能体分析收集的性能分析数据。