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 de lanzamiento normal de Android.
Límite del módulo
Statsd es el principal punto de contacto 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
, ubicado enframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
Un subconjunto de las estructuras de la plataforma protobuf, ubicadas principalmente en
frameworks/base/core/proto
Como servicio nativo, statsd puede sobrevivir al marco 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/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
→- Copie el nivel superior tal como está
- Mover
jni
framework/jni
- 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 de movimiento de parches
Aplicar 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 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 creen en un conjunto más pequeño de métodos etiquetados @SystemApi
, con un pequeño código de pegamento generado integrado. Para el código nativo, las funciones nativas existentes se refactorizan para que sean API C oficiales de VNDK, con API generadas. pegamento.
Personalización
El módulo Statsd no admite 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.