ProfilingManager API 可讓您從搭載 Android 15 (API 級別 35) 以上版本的正式版裝置,收集實際使用者效能設定檔,例如系統追蹤記錄和 Java 堆積轉儲。這項工具支援兩種收集機制:
應用程式導向設定檔,由應用程式控制設定檔收集作業的
開始和停止 (Android 15 以上版本);觸發條件式設定檔,由
系統處理擷取作業,以回應您
在 Android 16 (API 級別 36) 以上版本中註冊的事件。
本指南涵蓋下列主題:
- 擷取設定檔:如何啟動和停止應用程式驅動設定檔錄製,以及如何註冊觸發條件式設定檔錄製。
- 擷取及上傳設定檔:如何使用
adb在本機擷取設定檔,或使用WorkManager在背景上傳設定檔。 - 分析設定檔:如何在 Perfetto UI 中以視覺化方式呈現設定檔、使用 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 代理分析收集到的設定檔。