Statsd

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

Granica modułu

Statsd to główny punkt kontaktu między platformą a zbieraniem danych dotyczących bezpieczeństwa uruchamiania. Moduł statsd zawiera ten 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, które znajdują się głównie w frameworks/base/core/proto

Jako usługa natywna statsd może działać dłużej niż framework i wykrywać awarie w samym system_server.

W Androidzie 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 polecenia przenoszenia poprawek

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łu

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

Dostosowywanie

Moduł Statsd nie obsługuje dostosowywania.

Testowanie

Pakiet CTS (Compatibility Test Suite) na Androida weryfikuje działanie statsd i atomów, od których zależy zarządzanie wydaniami.