Le module Statsd inclut statsd, un service natif qui s'exécute en arrière-plan pour collecter des métriques, et le service Java StatsCompanionService
, qui s'exécute dans le processus système et établit un pont avec statsd et Java. Ce module est mis à jour, ce qui signifie qu'il peut recevoir des mises à jour de fonctionnalités (telles que les mises à jour des métriques utilisées pour la collecte de données) en dehors du cycle de publication normal d'Android.
Limite du module
Statsd est le point de contact principal entre la plate-forme et la collecte des données de sécurité de lancement. Le module statsd inclut le code suivant.
statsd
, situé dansframeworks/base/cmds/statsd
StatsCompanionService
, situé dansframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
Sous-ensemble des structures de tampons de protocole de la plate-forme, situé principalement dans
frameworks/base/core/proto
En tant que service natif, statsd peut survivre au framework et détecter les plantages dans system_server
lui-même.
Dans Android 12, le code du module Statsd est déplacé de frameworks/base/cmds/StatsD
, frameworks/base/apex/StatsD
et system/core/libstats
.
Nouvelle structure de projet
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
→- Copier le premier niveau tel quel
- Déplacer
jni
versframework/jni
- Déplacer les fichiers de niveau supérieur dans le répertoire
/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
Exemples de commandes de déplacement de correctifs
Appliquez les modifications aux branches suivantes:
goog/mainline-prod
goog/main
goog/\*-plus-aosp
aosp/main
L'historique des fichiers dans Statsd doit être conservé.
Format du module
Le module statsd (com.android.os.statsd
) est au format APEX et est disponible pour les appareils équipés d'Android 11 ou version ultérieure.
Dépendances des modules
Le module Statsd présente un ensemble d'API @hide
pour consigner les événements du système. Pour le code Java, la plupart des API @hide
sont refactorisées pour être basées sur un ensemble plus petit de méthodes taguées @SystemApi
, avec un petit code de liaison généré intégré. Pour le code natif, les fonctions natives existantes sont refactorisées pour devenir des API C VNDK officielles, avec une colle générée.
Personnalisation
Le module Statsd n'est pas compatible avec la personnalisation.
Tests
La Compatibility Test Suite (CTS) Android vérifie le fonctionnement de statsd et des atomes sur lesquels la gestion des versions repose.