Модуль Statsd включает в себя statsd, собственную службу, работающую в фоновом режиме и собирающую метрики, и Java-службу StatsCompanionService , которая работает в системном процессе и обеспечивает связь между statsd и Java. Этот модуль обновляем, то есть он может получать обновления функциональности (например, обновления метрик, используемых для сбора данных) вне обычного цикла выпуска Android.
Граница модуля
Statsd является основным связующим звеном между платформой и сбором данных для обеспечения безопасности запуска. Модуль statsd включает следующий код.
statsd, расположенный вframeworks/base/cmds/statsdStatsCompanionService, расположенный вframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaПодмножество структур protobuf платформы, расположенных преимущественно в
frameworks/base/core/proto
Будучи встроенной службой, statsd может существовать дольше, чем сам фреймворк, и обнаруживать сбои в системе system_server .
В Android 12 код модуля Statsd перемещен из frameworks/base/cmds/StatsD , frameworks/base/apex/StatsD и system/core/libstats .
Новая структура проекта
-
system/core/libstats→packages/modules/StatsD/lib/libstats-
system/core/libstats/socket→packages/modules/StatsD/lib/libstatssocket -
system/core/libstats/pull→packages/modules/StatsD/lib/libstatspull
-
-
frameworks/base/cmds/StatsD→packages/modules/StatsD/bin -
frameworks/base/apex/StatsD→- Скопируйте верхний уровень как есть.
- Переместите
jniвframework/jni - Переместите файлы верхнего уровня в каталог
/apex.-
frameworks/base/apex/StatsD/\*→packages/modules/StatsD/apex/\* -
frameworks/base/apex/StatsD/jni→packages/modules/StatsD/apex/framework/jni
-
-
cts/hostsidetests/StatsD→packages/modules/StatsD/tests
Примеры команд для перемещения патча
Примените изменения к следующим веткам:
-
goog/mainline-prod -
goog/main -
goog/\*-plus-aosp -
aosp/main
История изменений файлов в Statsd должна быть сохранена.
Формат модуля
Модуль statsd ( com.android.os.statsd ) имеет формат APEX и доступен для устройств под управлением Android 11 или выше.
Зависимости модуля
Модуль Statsd предоставляет набор API @hide для регистрации событий из системы. В Java-коде большинство API @hide переработаны и построены на основе меньшего набора методов с аннотацией @SystemApi , с добавлением небольшого сгенерированного связующего кода. В нативном коде существующие нативные функции переработаны и преобразованы в официальные C API VNDK с сгенерированным связующим кодом.
Настройка
Модуль Statsd не поддерживает настройку параметров.
Тестирование
Набор тестов на совместимость с Android (CTS) проверяет функциональность statsd и компонентов, от которых зависит управление релизами.