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 establece una conexión entre statsd y Java. Este módulo se puede actualizar, lo que significa que puede recibir actualizaciones de funcionalidad (como actualizaciones de las métricas que se usan en la recopilación de datos) fuera del ciclo normal de lanzamientos 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 del lanzamiento. El módulo statsd incluye el siguiente código.
statsd
, ubicado enframeworks/base/cmds/statsd
StatsCompanionService
, ubicada enframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
Un subconjunto de las estructuras de protobuf de la plataforma, que se encuentra principalmente en
frameworks/base/core/proto
Como servicio nativo, insightsd puede sobrevivir al framework y detectar fallas en el 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/libstats
system/core/libstats/socket
→packages/modules/StatsD/lib/libstatssocket
system/core/libstats/pull
→packages/modules/StatsD/lib/libstatspull
frameworks/base/cmds/StatsD
→packages/modules/StatsD/bin
frameworks/base/apex/StatsD
→- Copiar el nivel superior tal como está
- Cómo mover
jni
aframework/jni
- Cómo mover 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 para mover parches
Aplica los cambios a las siguientes ramas:
goog/mainline-prod
goog/main
goog/\*-plus-aosp
aosp/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 de módulos
El módulo Statsd presenta un conjunto de APIs de @hide
para registrar eventos desde el sistema. En el caso del código Java, la mayoría de las APIs de @hide
se refactorizan para compilarse en un conjunto más pequeño de métodos etiquetados @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 ser APIs oficiales de C de VNDK, con un código de enlace generado.
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 lanzamientos.