Statistiques

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 peut être mis à jour, 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 plate-forme et la collecte de données de sécurité de lancement. Le module statsd inclut le code suivant.

  • statsd , situé dans frameworks/base/cmds/statsd

  • StatsCompanionService , situé dans frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • Un sous-ensemble des structures protobuf 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 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 de projet

  • system/core/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • Copier le niveau supérieur tel quel
    • Déplacer jni dans framework/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/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/modules/StatsD/tests

Exemples de commandes de déplacement de patch

Appliquez les modifications aux branches suivantes :

  • goog/mainline-prod
  • goog/master
  • goog/\*-plus-aosp
  • aosp/master

L'historique des fichiers dans Statsd doit être conservé.

Format des modules

Le module statsd ( com.google.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 consigner 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 étiqueté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 VNDK C officielles, avec des 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.