El módulo Statsd incluye statsd, un servicio nativo que se ejecuta en segundo plano y recopila métricas, y el servicio Java StatsCompanionService, que se ejecuta en el proceso del sistema y une statsd y Java. Este módulo se puede actualizar, lo que significa que puede recibir actualizaciones de funciones (como actualizaciones de las métricas que se usan en la recopilación de datos) fuera del ciclo de lanzamiento normal 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 enframeworks/base/cmds/statsdStatsCompanionService, ubicado enframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaUn subconjunto de las estructuras protobuf de la plataforma, ubicado principalmente en
frameworks/base/core/proto
Como servicio nativo, statsd puede sobrevivir al framework y detectar fallas en el propio 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/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 el nivel superior tal como está.
- Mueve
jniaframework/jni. - Mueve los archivos de nivel superior al directorio
/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
Comandos de muestra de movimiento de parches
Aplica los cambios a las siguientes ramas:
goog/mainline-prodgoog/maingoog/\*-plus-aospaosp/main
Se debe conservar el historial de los archivos dentro de Statsd.
Formato del módulo
El módulo statsd (com.android.os.statsd) está en
formato APEX y está disponible para dispositivos
que ejecutan Android 11 o versiones posteriores.
Dependencias del módulo
El módulo Statsd presenta un conjunto de APIs @hide para registrar eventos del sistema. En el caso del código Java, la mayoría de las APIs @hide se refactorizan para compilarse en un conjunto más pequeño de métodos etiquetados con @SystemApi, con un pequeño código de unión generado integrado. En el caso del código nativo, las funciones nativas existentes se refactorizan para que sean APIs de C de VNDK oficiales, con unión generada.
Personalización
El módulo Statsd no admite la personalización.
Prueba
El Conjunto de pruebas de compatibilidad (CTS) de Android verifica la funcionalidad de statsd y los átomos de los que depende la administración de versiones.