Statsd

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 in frameworks/base/cmds/statsd

  • StatsCompanionService, situata in frameworks/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/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • Copia il livello superiore così com'è
    • Sposta jni in framework/jni
    • Sposta i file di primo livello nella directory /apex
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/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.