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 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é 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 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/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éplacez 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 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.