Moduł Statsd zawiera statystyki – natywną usługę działającą w tle zbierające wskaźniki oraz usługę Java StatsCompanionService
, która działa w procesie systemowym i łączy statystyki z obsługą języka Java. Ten moduł można aktualizować, co oznacza, że może on otrzymywać aktualizacje funkcji (np. aktualizacje danych wykorzystywanych do zbierania danych) poza normalnym cyklem wydawania Androida.
Granica modułu
Statsd to główny punkt styczności platformy z 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ących się głównie w pliku
frameworks/base/core/proto
Jako usługa natywnych, statsd może przetrwać dłużej niż framework i wykrywać awarie w system_server
.
W Androidzie 12 kod modułu Statsd został przeniesiony z plików 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
→- Kopiowanie najwyższego poziomu 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 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 w Javie większość interfejsów @hide
została przebudowana tak, aby opierała się na mniejszym zbiorze metod z etykietą @SystemApi
, z uwzględnieniem niewielkiego wygenerowanego kodu łączącego. W przypadku kodu natywnego dotychczasowe funkcje natywne są przekształcane w oficjalne interfejsy API C VNDK za pomocą wygenerowanego kodu pośredniczącego.
Dostosowywanie
Moduł statystyk nie obsługuje dostosowywania.
Testowanie
Pakiet Compatibility Test Suite (CTS) sprawdza funkcjonalność statsd oraz atomów, od których zależy zarządzanie wersjami.