Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

Suivi des transitions de fenêtre

WinScope fournit l'infrastructure et les outils pour enregistrer et analyser les états de WindowManager et SurfaceFlinger pendant et après les transitions de fenêtre. WinScope enregistre tous les états de service système pertinents dans un fichier de trace, que vous pouvez utiliser pour relire et parcourir les transitions.

Capturer des traces

Capturez des traces via les paramètres rapides ou adb sur les appareils exécutant userdebug ou eng builds.

Réglages rapides

Pour capturer des traces à partir des paramètres rapides :

  1. Activez les options pour les développeurs .
  2. Accédez aux options du développeur > vignettes développeur de paramètres rapides .
  3. Activez WinScope Trace .
  4. Ouvrez les paramètres rapides .
  5. Appuyez sur Winscope Trace pour activer le traçage.
  6. Exécutez les transitions de fenêtre sur l'appareil.
  7. Une fois que vous avez terminé, ouvrez Paramètres rapides et appuyez sur Trace Winscope pour désactiver le traçage.

Les traces sont écrites dans /data/misc/wmtrace/wm_trace.pb et /data/misc/wmtrace/layers_trace.pb . Les traces sont également incluses dans les rapports de bogues.

adb

Lors de la capture de traces via adb , capturez les traces WindowManager et SurfaceFlinger séparément.

Traces de WindowManager

Pour capturer les traces WindowManager:

  1. Activer la trace:
    adb shell cmd window tracing start
  2. Désactiver la trace:
    adb shell cmd window tracing stop
  3. Prenez le fichier de trace:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

Vous pouvez éventuellement modifier la configuration du journal par défaut de divers paramètres pour les traces WindowManager:

  • Définissez la fréquence du journal (pour la transaction ou la trame):
    adb shell cmd window tracing [ frame  |  transaction ]
  • Configurez le niveau détaillé des entrées de journal:
    adb shell cmd window tracing level [ all  |  trim  |  critical ]
  • Définissez la taille maximale du tampon (en Ko):
    adb shell cmd window tracing size size-value 
  • Videz l'état de la mémoire tampon, le niveau de journalisation, la capacité restante et le nombre d'éléments:
    adb shell cmd window tracing status

Traces SurfaceFlinger

Pour capturer les traces SurfaceFlinger:

  1. Activer la trace:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. Désactiver la trace:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. Prenez le fichier de trace:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

Vous pouvez éventuellement modifier la configuration du journal par défaut de divers paramètres pour les traces SurfaceFlinger:

  • Définissez la taille maximale du tampon (en Ko):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value 
  • Configurez le niveau détaillé des entrées de journal:
    adb shell su root service call SurfaceFlinger 1033 i32 flags 

Génération de vidages d'état

WinScope lit un instantané des états WindowManager et SurfaceFlinger à partir des rapports de bogue. Les rapports de bogue stockent les états sous forme de fichiers proto séparés dans le dossier proto . Pour générer les adb état à l'aide d' adb , exécutez les commandes suivantes.

WindowManager

adb exec-out dumpsys window --proto > window_dump.pb

SurfaceFlinger

adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.pb

Analyse des traces

Pour analyser un fichier de trace, utilisez l'application Web WinScope. Créez l'application peut à partir de la source ou ouvrez-la à partir du répertoire prédéfini.

  1. Téléchargez des artefacts prédéfinis à partir du référentiel source Android:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. Ouvrez les artefacts téléchargés dans un navigateur Web.
  3. Une fois WinScope ouvert, sélectionnez OPEN FILE pour charger un fichier de trace.

Utilisation de WinScope

Après avoir ouvert un fichier de trace dans WinScope, vous pouvez analyser la trace de plusieurs manières.

Capture d'écran WinScope
Figure 1. Analyse d'une trace dans WinScope
  • Chronologie - Affiche la séquence des événements dans la trace. Utilisez les touches fléchées ou cliquez sur chaque entrée pour parcourir la chronologie.
  • Écran - Fournit une représentation visuelle de chaque fenêtre visible à l'écran. Cliquez sur une fenêtre pour sélectionner la fenêtre source dans la hiérarchie.
  • Hiérarchie - Représente chaque fenêtre connue du système. Certaines fenêtres ne contiennent pas de tampons, mais existent pour définir des politiques sur les enfants de la fenêtre. Les fenêtres visibles sont marquées de l'icône V
  • Propriétés - Affiche les informations d'état de l'entrée sélectionnée dans la hiérarchie.