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/StatsD
i system/core/libstats
.
Nowa struktura projektu
system/core/libstats
→packages/modules/StatsD/lib/libstats
system/core/libstats/socket
→packages/modules/StatsD/lib/libstatssocket
system/core/libstats/pull
→packages/modules/StatsD/lib/libstatspull
frameworks/base/cmds/StatsD
→packages/modules/StatsD/bin
frameworks/base/apex/StatsD
→- Skopiuj najwyższy poziom w obecnej postaci
- Przenieś
jni
doframework/jni
- Przenieś pliki najwyższego poziomu do katalogu
/apex
.frameworks/base/apex/StatsD/\*
→packages/modules/StatsD/apex/\*
frameworks/base/apex/StatsD/jni
→packages/modules/StatsD/apex/framework/jni
cts/hostsidetests/StatsD
→packages/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.