Обзор

API ProfilingManager позволяет собирать профили производительности реальных пользователей, например трассировки системы и дампы кучи Java, с рабочих устройств под управлением Android 15 (уровень API 35) и более поздних версий. Поддерживаются два механизма сбора данных: профили, управляемые приложением, в которых приложение контролирует сбор данных от начала до конца (Android 15 и более поздние версии), и профили на основе триггеров, в которых система обрабатывает сбор данных в ответ на события, которые вы регистрируете в Android 16 (уровень API 36) и более поздних версиях.

В этом руководстве рассматриваются следующие темы:

Поддерживаемые типы профилей

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.
    • Выборка стеков вызовов потоков, которая помогает понять, как выполняется код, и проанализировать использование ЦП.

Как интегрировать ProfilingManager с ИИ-агентом

Вы можете использовать ИИ-агента для программирования, чтобы интегрировать ProfilingManager в свое приложение. Например, выполните следующий запрос в ИИ-агенте для программирования, чтобы настроить сбор триггеров ошибок "Приложение не отвечает", заменив </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), или настроить сбор профилей, управляемый приложением, с помощью руководства по профилированию, управляемому приложением. После интеграции протестируйте настройки локально, используя команды отладки для локального профилирования, и проанализируйте собранные профили с помощью ИИ-агента.