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