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