Il modulo Statsd include statsd, un servizio nativo che viene eseguito in background raccogliendo metriche, e il servizio Java StatsCompanionService, che viene eseguito nel processo di sistema e fa da ponte tra statsd e Java. Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti delle funzionalità (ad esempio aggiornamenti delle metriche utilizzate nella raccolta dei dati) al di fuori del normale ciclo di rilascio di Android.
Limite del modulo
Statsd è il punto di contatto principale tra la piattaforma e la raccolta dei dati di sicurezza di lancio. Il modulo statsd include il seguente codice.
statsd, che si trova inframeworks/base/cmds/statsdStatsCompanionService, che si trova inframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaUn sottoinsieme delle strutture protobuf della piattaforma, che si trova principalmente in
frameworks/base/core/proto
In quanto servizio nativo, statsd può sopravvivere al framework e rilevare arresti anomali in 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/libstatssystem/core/libstats/socket→packages/modules/StatsD/lib/libstatssocketsystem/core/libstats/pull→packages/modules/StatsD/lib/libstatspull
frameworks/base/cmds/StatsD→packages/modules/StatsD/binframeworks/base/apex/StatsD→- Copia il livello superiore così com'è
- Sposta
jniinframework/jni - Sposta i file di primo livello nella directory
/apexframeworks/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 delle patch
Applica le modifiche ai seguenti rami:
goog/mainline-prodgoog/maingoog/\*-plus-aospaosp/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 del modulo
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 basata su un insieme più piccolo di metodi con tag @SystemApi, con un piccolo codice di collegamento generato integrato. Per il codice nativo, le funzioni native esistenti vengono sottoposte a refactoring per diventare API C VNDK ufficiali, con un collegamento generato.
Personalizzazione
Il modulo Statsd non supporta la personalizzazione.
Test
La suite di test di compatibilità (CTS) di Android verifica la funzionalità di statsd e degli atomi da cui dipende la gestione delle release.