Il modulo Statsd include statsd, un servizio nativo che viene eseguito in background per raccogliere le metriche, 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à (ad esempio aggiornamenti alle metriche
utilizzate nella raccolta dei 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
, situata inframeworks/base/cmds/statsd
StatsCompanionService
, situata 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
In quanto servizio nativo, statsd può sopravvivere al framework e rilevare gli arresti anomali all'interno di 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 il trasferimento delle patch
Applica le modifiche ai seguenti rami:
goog/mainline-prod
goog/main
goog/\*-plus-aosp
aosp/main
La cronologia dei file all'interno di Statsd deve essere conservata.
Formato del modulo
Il modulo statsd (com.android.os.statsd
) è in formato
APEX ed è disponibile per i dispositivi con
Android 11 o versioni successive.
Dipendenze dei moduli
Il modulo Statsd presenta un insieme di API @hide
per registrare gli eventi del sistema. Per il codice Java, la maggior parte delle API @hide
viene sottoposta a refactoring per essere costruita su un insieme più piccolo di metodi @hide
con tag, con un piccolo codice di collegamento generato integrato.@SystemApi
Per il codice nativo, le funzioni native esistenti vengono ristrutturate per diventare API C VNDK ufficiali, con codice di collegamento generato.
Personalizzazione
Il modulo Statsd non supporta la personalizzazione.
Test
La suite di test di compatibilità Android (CTS) verifica la funzionalità di statsd e degli atomi su cui dipende la gestione delle release.