Модуль Statsd включает statsd, собственную службу, которая работает в фоновом режиме и собирает метрики, и службу Java StatsCompanionService
, которая запускается в системном процессе и связывает statsd и Java. Этот модуль является обновляемым, то есть он может получать обновления функциональности (например, обновления метрик, используемых при сборе данных) вне обычного цикла выпуска Android.
Граница модуля
Statsd — это основная точка взаимодействия между платформой и сбором данных о безопасности запуска. Модуль statsd включает следующий код.
statsd
, расположенный вframeworks/base/cmds/statsd
StatsCompanionService
, расположенный в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
, со встроенным небольшим сгенерированным связующим кодом. Для собственного кода существующие встроенные функции реорганизуются, чтобы стать официальными API VNDK C со сгенерированными клей.
Кастомизация
Модуль Statsd не поддерживает настройку.
Тестирование
Набор тестов совместимости Android (CTS) проверяет функциональность statsd и атомов, от которых зависит управление выпусками.