Statystyki

Moduł Statsd zawiera statsd, natywną usługę działającą w tle i gromadzącą metryki, oraz usługę Java StatsCompanionService , która działa w procesie systemowym i łączy statsd i Java. Ten moduł można aktualizować, co oznacza, że ​​może otrzymywać aktualizacje funkcjonalności (takie jak aktualizacje metryk używanych do gromadzenia danych) poza normalnym cyklem wydawniczym Androida.

Granica modułu

Statsd to główny punkt styku między platformą a gromadzeniem danych dotyczących bezpieczeństwa startu. Moduł statsd zawiera następujący kod.

  • statsd , znajdujący się w frameworks/base/cmds/statsd

  • StatsCompanionService , znajdujący się w frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • Podzbiór struktur protobuf platformy, zlokalizowany głównie w frameworks/base/core/proto

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

W systemie Android 12 kod modułu Statsd został przeniesiony z frameworks/base/cmds/StatsD , frameworks/base/apex/StatsD i system/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 niezmienionej 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 poprawek

Zastosuj zmiany do następujących gałęzi:

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

Należy zachować historię plików w Statsd.

Format modułu

Moduł statsd ( com.android.os.statsd ) jest w formacie APEX i jest dostępny dla urządzeń z systemem Android 11 lub nowszym.

Zależności modułów

Moduł Statsd prezentuje zestaw API @hide służących do rejestrowania zdarzeń z systemu. W przypadku kodu Java większość interfejsów API @hide jest refaktoryzowana w celu zbudowania ich na mniejszym zestawie metod oznaczonych tagiem @SystemApi , z wbudowanym niewielkim wygenerowanym kodem klejącym. W przypadku kodu natywnego istniejące funkcje natywne są refaktoryzowane tak, aby były oficjalnymi interfejsami API VNDK C, z wygenerowanymi klej.

Dostosowywanie

Moduł Statsd nie obsługuje dostosowywania.

Testowanie

Pakiet testów zgodności systemu Android (CTS) weryfikuje funkcjonalność statsd i atomów, od których zależy zarządzanie wersjami.