Профилирование

Модуль Profiling появился в Android 16 и позволяет приложениям собирать данные профилирования с помощью Perfetto на общедоступных устройствах.

  • Приложения могут запрашивать профилирование с использованием дампа кучи Java, профиля кучи, выборки стека или трассировки системы и задавать определенные конфигурации для каждого из этих способов.
  • Приложения могут регистрировать интерес к получению трассировок определенных событий, а система может запускать и останавливать трассировку для приложений.
  • Результаты редактируются, чтобы содержать информацию, относящуюся только к процессу запроса, и доставляются в каталог хранения приложения для дальнейшей обработки.
  • Частота запросов ограничена, и их выполнение не гарантируется.

Граница модуля

  • Профилирование Mainline APEX – com.google.android.profiling:
    • Поверхность API профилирования (Java):
      • Местоположение кода: packages/modules/Profiling/framework
      • Процесс: boot_class_path
    • ProfilingService (Java):
      • Расположение кода: packages/modules/Profiling/service
      • Процесс: system_server

Формат пакета

Модуль профилирования поставляется в виде пакета APEX (com.google.android.profiling). Модуль содержит два JAR-файла:

  • framework-profiling.jar: содержит поверхность API, с которой взаимодействует вызывающий объект. Это часть bootclasspath.
  • service-profiling.jar: содержит новый системный сервис ProfilingService. Загружается процессом системного сервера.

Связанные запросы

У этого модуля нет внешних зависимостей.