Statystyki

Moduł Statsd zawiera statsd, natywną usługę działającą w tle, zbierającą metryki, oraz usługę Java StatsCompanionService , która działa w procesie systemowym i łączy statystyki statsd z Javą. Ten moduł można aktualizować, co oznacza, że ​​może otrzymywać aktualizacje funkcji (takie jak aktualizacje metryk używanych w zbieraniu danych) poza normalnym cyklem wydawniczym systemu Android.

Granica modułu

Statsd jest głównym punktem styku między platformą a zbieraniem 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, zlokalizowanych głównie w frameworks/base/core/proto

Jako usługa natywna, statsd może przetrwać strukturę i wykrywać awarie samego serwera 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 bez zmian
    • 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 komendy patch move

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

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

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 dla urządzeń z systemem Android 11 lub nowszym.

Zależności modułów

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

Dostosowywanie

Moduł Statsd nie obsługuje dostosowywania.

Testowanie

Android Compatibility Test Suite (CTS) weryfikuje funkcjonalność statsd i atomów, od których zależy zarządzanie wydaniami.