Estadísticas

El módulo Statsd incluye statsd, un servicio nativo que se ejecuta en segundo plano recopilando métricas, y el servicio Java StatsCompanionService , que se ejecuta en el proceso del sistema y une statsd y Java. Este módulo es actualizable, lo que significa que puede recibir actualizaciones de funcionalidad (como actualizaciones de las métricas utilizadas en la recopilación de datos) fuera del ciclo normal de lanzamiento de Android.

Límite del módulo

Statsd es el punto de contacto principal entre la plataforma y la recopilación de datos de seguridad de lanzamiento. El módulo statsd incluye el siguiente código.

  • statsd , ubicado en frameworks/base/cmds/statsd

  • StatsCompanionService , ubicado en frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • Un subconjunto de las estructuras protobuf de la plataforma, ubicado principalmente en frameworks/base/core/proto

Como servicio nativo, statsd puede sobrevivir al marco y detectar bloqueos en el mismo system_server .

En Android 12, el código del módulo Statsd se mueve de frameworks/base/cmds/StatsD , frameworks/base/apex/StatsD y system/core/libstats .

Nueva estructura del proyecto

  • 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
    • Copie el nivel superior tal como está
    • Mover jni a framework/jni
    • Mover archivos de nivel superior al directorio /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

Comandos de ejemplo de movimiento de parches

Aplicar los cambios a las siguientes ramas:

  • goog/mainline-prod
  • goog/master
  • goog/\*-plus-aosp
  • aosp/master

El historial de los archivos dentro de Statsd debe conservarse.

Formato del módulo

El módulo statsd ( com.google.android.os.statsd ) está en formato APEX y está disponible para dispositivos con Android 11 o superior.

Dependencias del módulo

El módulo Statsd presenta un conjunto de API @hide para registrar eventos del sistema. Para el código Java, la mayoría de las API @hide se refactorizan para que se construyan en un conjunto más pequeño de métodos etiquetados @SystemApi , con un pequeño código integrado generado. Para el código nativo, las funciones nativas existentes se refactorizan para que sean pegamento.

personalización

El módulo Statsd no admite la personalización.

Pruebas

El conjunto de pruebas de compatibilidad de Android (CTS) verifica la funcionalidad de statsd y los átomos de los que depende la gestión de versiones.