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

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

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

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

  • Профилирование основной ветки 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 . Загружается процессом системного сервера.

Зависимости

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