Модуль профилирования был представлен в 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
- Расположение кода:
- Поверхность API профилирования (Java):
Формат упаковки
Модуль профилирования поставляется в виде пакета APEX ( com.google.android.profiling
). Модуль содержит два JAR-файла:
-
framework-profiling.jar
: Содержит API-поверхность, с которой взаимодействует вызывающий объект. Является частью bootclasspath. -
service-profiling.jar
: Содержит новую системную службуProfilingService
. Загружается системным серверным процессом.
Зависимости
Этот модуль не имеет внешних зависимостей.