Le module Statsd comprend 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 relie statsd et Java. Ce module est modifiable, ce qui signifie qu'il peut recevoir des mises à jour de fonctionnalités (telles que 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 plateforme et la collecte de données sur la sécurité du lancement. Le module statsd comprend le code suivant.
statsd
, situé dansframeworks/base/cmds/statsd
StatsCompanionService
, situé dansframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
Un sous-ensemble des structures protobuf de la plateforme, situé principalement dans
frameworks/base/core/proto
En tant que service natif, statsd peut survivre au framework et détecter les pannes dans le 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 du 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 niveau supérieur tel quel
- Déplacer
jni
dansframework/jni
- Déplacez 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 des modules
Le module statsd ( com.android.os.statsd
) est au format APEX et est disponible pour les appareils exécutant Android 11 ou supérieur.
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 construites sur un ensemble plus petit de méthodes balisées @SystemApi
, avec un petit code de colle généré intégré. Pour le code natif, les fonctions natives existantes sont refactorisées pour être des API C officielles du VNDK, avec des API C générées. colle.
Personnalisation
Le module Statsd ne prend pas en charge la personnalisation.
Essai
La suite de tests de compatibilité Android (CTS) vérifie la fonctionnalité de statsd et les atomes dont dépend la gestion des versions.