Статистика

Модуль 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/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • Скопировать верхний уровень как есть
    • Переместите jni в framework/jni
    • Переместите файлы верхнего уровня в каталог /apex
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/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 и атомов, от которых зависит управление выпусками.