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ę wframeworks/base/cmds/statsd
StatsCompanionService
, znajdujący się wframeworks/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/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 niezmienionej 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 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.