Statistiche

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

  • StatsCompanionService , situato 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

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/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 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.