Statsd

Moduł Statsd zawiera statsd, czyli usługę natywną działającą w tle, która zbiera dane, oraz usługę Java StatsCompanionService, która działa w procesie systemowym i łączy statsd z Java. Ten moduł można aktualizować, co oznacza, że może otrzymywać aktualizacje funkcji (np. aktualizacje danych używanych do zbierania danych) poza normalnym cyklem wydawania Androida.

Granica modułu

Statsd to główny punkt styku między platformą a zbieraniem danych dotyczących bezpieczeństwa uruchamiania. Moduł statsd zawiera ten kod.

  • statsd w: frameworks/base/cmds/statsd

  • StatsCompanionService w: frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • Podzbiór struktur protobuf platformy, znajdujący się głównie w frameworks/base/core/proto

Jako usługa natywna statsd może przetrwać framework i wykrywać awarie w system_server.

W Androidzie 12 kod modułu Statsd został przeniesiony z frameworks/base/cmds/StatsD, frameworks/base/apex/StatsDsystem/core/libstats.

Nowa struktura projektu

  • 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
    • Skopiuj najwyższy poziom w obecnej postaci
    • Przenieś jni do framework/jni
    • Przenieś pliki najwyższego poziomu do katalogu /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

Przykładowe polecenia przenoszenia poprawki

Zastosuj zmiany w tych gałęziach:

  • goog/mainline-prod
  • goog/main
  • goog/\*-plus-aosp
  • aosp/main

Historia plików w Statsd powinna zostać zachowana.

Format modułu

Moduł statsd (com.android.os.statsd) jest w formacie APEX i jest dostępny na urządzeniach z Androidem 11 lub nowszym.

Zależności modułów

Moduł Statsd udostępnia zestaw interfejsów API @hide do rejestrowania zdarzeń z systemu. W przypadku kodu w Javie większość interfejsów @hide API jest refaktoryzowana w taki sposób, aby opierać się na mniejszym zestawie metod oznaczonych tagiem @SystemApi, z wbudowanym niewielkim wygenerowanym kodem łączącym. W przypadku kodu natywnego istniejące funkcje natywne są refaktoryzowane, aby stały się oficjalnymi interfejsami VNDK C API z wygenerowanym kodem pośredniczącym.

Dostosowywanie

Moduł Statsd nie obsługuje dostosowywania.

Testowanie

Pakiet testów zgodności Androida (CTS) weryfikuje działanie statsd i atomów, od których zależy zarządzanie wersjami.