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

Модуль профилирования был представлен в 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 . Загружается системным серверным процессом.

Зависимости

Этот модуль не имеет внешних зависимостей.