Capturer des traces avec Winscope

Exécutez Winscope localement ou accédez-y depuis un serveur Web.

Vous pouvez capturer des traces à l'aide de Winscope pour le développement et le débogage locaux. Winscope utilise adb, qui est compatible avec la connexion d'appareils via USB ou Wi-Fi.

Lorsque vous lancez Winscope, l'écran Collect Traces (Collecter les traces) s'affiche.

Connexion de l'appareil

Vous pouvez connecter des appareils dans Winscope à l'aide de Winscope Proxy ou Web Device Proxy. Par défaut, la page d'accueil de Winscope affiche l'interface utilisateur de configuration de la connexion Winscope Proxy.

Pour commencer à capturer des traces, choisissez l'un des mécanismes de connexion d'appareils suivants.

Configuration de Winscope Proxy

Pour configurer Winscope Proxy, procédez comme suit :

  1. Dans la section Collect Traces (Collecter les traces) de la page d'accueil, sélectionnez Winscope Proxy dans le menu Select connection type (Sélectionner le type de connexion) :

    Capturer des traces à l'aide de Winscope Proxy

    Figure 1. Capturer des traces à l'aide de Winscope Proxy.

  2. Lancez le proxy Winscope ADB Connect pour capturer des traces directement depuis votre navigateur en exécutant la commande suivante :

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. Notez le jeton de proxy Winscope affiché sur le terminal après l'exécution.

  4. Une fois que vous avez lancé le proxy Winscope ADB Connect, l'écran change comme suit. Pour établir la connexion initiale au proxy, saisissez le jeton de proxy Winscope de l'étape 3, puis cliquez sur Connect (Se connecter).

    Se connecter au proxy Winscope

    Figure 2. Se connecter à Winscope Proxy.

Configuration de Web Device Proxy

Pour configurer Web Device Proxy, procédez comme suit :

  1. Dans la section Collect Traces (Collecter les traces) de la page d'accueil, sélectionnez Web Device Proxy dans le menu Select connection type (Sélectionner le type de connexion) :

    Capturer des traces à l'aide du proxy Web pour les appareils

    Figure 3. Capturer des traces à l'aide de Web Device Proxy.

  2. Si le démon Web Device Proxy n'est pas installé sur votre ordinateur, cliquez sur Install (Installer) ou exécutez le programme d'installation.

  3. Approuvez l'accès à l'origine de Web Device Proxy dans la boîte de dialogue.

    Autoriser l'accès WDP à l'origine

    Figure 4. Autoriser l'origine.

  4. Approuvez l'accès pour chaque nouvel appareil la première fois que vous vous y connectez. Si la boîte de dialogue ne s'affiche pas automatiquement, cliquez sur l'icône lock_open à côté de l'appareil :

    wdp_unauth_device

    Figure 5. Autoriser l'appareil.

Traces

Pour collecter des traces, procédez comme suit :

  1. Une fois connecté, pour lancer le processus de capture, sélectionnez les cibles et configurez les paramètres. Cliquez ensuite sur Start trace (Démarrer la trace) pour commencer la capture :

    Collecter des traces dans Winscope

    Figure 6. Collecter des traces dans Winscope.

  2. Pour arrêter la capture, cliquez sur End trace (Terminer la trace) :

    Mettre fin à la trace dans Winscope

    Figure 7. Terminer la trace dans Winscope.

Options de trace

Cette section décrit les options de chaque type de trace.

Enregistrement de l'écran

Avec Winscope, vous pouvez enregistrer l'écran de plusieurs écrans. Choisissez un écran dans le menu pour l'enregistrer. Si vous n'effectuez aucune sélection, Winscope enregistre l'écran actif par défaut.

SurfaceFlinger

  • Buffer size (Taille de la mémoire tampon) : ajuste la taille de la mémoire tampon en anneau en mémoire pour la trace SurfaceFlinger. Une mémoire tampon plus grande permet de collecter plus de données, mais augmente l'utilisation de la mémoire.

  • Input (Entrée) : si la surface contient des données d'entrée, suit les spécificités de la fenêtre d'entrée.

  • Composition : suit le type de composition et la région visible.

  • Metadata (Métadonnées) : suit les métadonnées de surface supplémentaires, y compris les calques hors écran.

  • HWC : suit les métadonnées supplémentaires non structurées du compositeur matériel.

  • Trace buffers (Mémoires tampons de trace) : configure SurfaceFlinger pour suivre toutes les modifications de mémoire tampon sur la surface. Par défaut, SurfaceFlinger ne suit un nouvel état que lorsque la géométrie est modifiée.

  • Virtual displays (Écrans virtuels) : inclut les calques d'écran virtuel dans la trace.

WindowManager

  • Buffer size (Taille de la mémoire tampon) : ajuste la taille de la mémoire tampon en anneau en mémoire pour la trace WindowManager. Une mémoire tampon plus grande permet de collecter plus de données, mais augmente l'utilisation de la mémoire.
  • Tracing type (Type de suivi) : définit les options de fréquence pour la collecte des états :

    • frame : dans ce mode, WindowManager vide un seul état par frame, ce qui garantit que seuls les états WindowManager valides sont capturés. Ce mode a la plus faible surcharge de performances.
    • transaction : ce mode enregistre un état WindowManager chaque fois qu'une transaction est validée. Vous pouvez valider plusieurs transactions dans un frame, ce qui permet de déboguer les états WindowManager intermédiaires pendant un frame. Toutefois, ce mode a une surcharge de performances plus élevée que le mode frame.
  • Tracing level (Niveau de suivi) : détermine le niveau de détail des traces WindowManager :

    • verbose : inclut toutes les fenêtres et les informations de configuration pour chaque fenêtre. Ce mode a la plus forte surcharge de mémoire et de performances.
    • debug : inclut des informations sur toutes les fenêtres, mais n'enregistre la configuration de la fenêtre que si elle contient une configuration de remplacement demandée.
    • critical : inclut les mêmes informations que le mode Debug, mais n'inclut que les fenêtres visibles. Ce mode a la plus faible surcharge de mémoire et de performances.

Vider

Pour effectuer un vidage d'état à l'aide de Winscope, sous Collect Traces (Collecter les traces) sur la page d'accueil , sélectionnez l'onglet Dump (Vider), puis cliquez sur Dump state (Vider l'état) :

État de la copie dans Winscope

Figure 8. Vider l'état dans Winscope.

Configuration de la capture d'écran

Winscope permet de prendre une capture d'écran pour plusieurs écrans. Choisissez un écran dans le menu pour le capturer. Si aucune sélection n'est effectuée, une capture d'écran est collectée pour l'écran actif.