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 fait le pont entre statsd et Java. Ce module est évolutif, ce qui signifie qu'il peut recevoir des mises à jour de fonctionnalités (par exemple, des mises à jour des métriques utilisées dans la collecte de données) en dehors du cycle de publication normal d'Android.
Limite du module
Statsd est le principal point de contact entre la plate-forme et la collecte de données sur la sécurité du lancement. Le module statsd inclut le code suivant.
statsd, situé àframeworks/base/cmds/statsdStatsCompanionService, situé àframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaSous-ensemble des structures protobuf de la plate-forme, principalement situé 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é depuis frameworks/base/cmds/StatsD, frameworks/base/apex/StatsD et system/core/libstats.
Nouvelle structure de projet
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→- Copier le niveau supérieur tel quel
- Déplacer
jniversframework/jni - Déplacer les fichiers de premier niveau dans le répertoire
/apexframeworks/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-prodgoog/maingoog/\*-plus-aospaosp/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 fonctionnant sous Android 11 ou version ultérieure.
Dépendances des modules
Le module Statsd présente un ensemble d'API @hide pour enregistrer 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
L'outil Android Compatibility Test Suite (CTS) vérifie la fonctionnalité de statsd et des atomes dont dépend la gestion des versions.