Il modulo Statsd include statsd, un servizio nativo che viene eseguito in background raccogliendo parametri, e il servizio Java StatsCompanionService
, che viene eseguito nel processo di sistema e collega statsd e Java. Questo modulo è aggiornabile, ovvero può ricevere aggiornamenti alle funzionalità (come aggiornamenti alle metriche utilizzate nella raccolta dati) al di fuori del normale ciclo di rilascio di Android.
Confine del modulo
Statsd è il punto di contatto principale tra la piattaforma e la raccolta dei dati sulla sicurezza del lancio. Il modulo statsd include il seguente codice.
statsd
, situato inframeworks/base/cmds/statsd
StatsCompanionService
, situato inframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
Un sottoinsieme delle strutture protobuf della piattaforma, situate principalmente in
frameworks/base/core/proto
Essendo un servizio nativo, statsd può sopravvivere al framework e rilevare arresti anomali nel system_server
stesso.
In Android 12, il codice del modulo Statsd viene spostato da frameworks/base/cmds/StatsD
, frameworks/base/apex/StatsD
e system/core/libstats
.
Nuova struttura del progetto
-
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
→- Copia il livello superiore così com'è
- Sposta
jni
inframework/jni
- Sposta i file di primo livello nella directory
/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
Comandi di esempio per lo spostamento della patch
Applicare le modifiche ai seguenti rami:
-
goog/mainline-prod
-
goog/main
-
goog/\*-plus-aosp
-
aosp/main
La cronologia dei file all'interno di Statsd dovrebbe essere preservata.
Formato del modulo
Il modulo statsd ( com.android.os.statsd
) è in formato APEX ed è disponibile per dispositivi con Android 11 o versioni successive.
Dipendenze del modulo
Il modulo Statsd presenta una serie di API @hide
per registrare gli eventi dal sistema. Per il codice Java, la maggior parte delle API @hide
viene sottoposta a refactoring per essere creata su un insieme più piccolo di metodi con tag @SystemApi
, con alcuni piccoli codici colla generati incorporati. Per il codice nativo, le funzioni native esistenti vengono sottoposte a refactoring per essere API C VNDK ufficiali, con colla.
Personalizzazione
Il modulo Statsd non supporta la personalizzazione.
Test
L'Android Compatibility Test Suite (CTS) verifica la funzionalità di statsd e gli atomi da cui dipende la gestione dei rilasci.