Capturer une trace système sur un appareil

Les appareils équipés d'Android version 9 (niveau 28 d'API) ou ultérieure incluent une application système appelée "System Tracing" (Traçage système). Cette application est semblable à l'utilitaire de ligne de commande systrace, mais elle vous permet d'enregistrer des traces directement à partir d'un appareil de test lui-même, sans avoir à brancher l'appareil et à vous y connecter via adb. Vous pouvez ensuite utiliser l'application pour partager les résultats de ces traces avec votre équipe de développement.

Les appareils équipés d'Android version 10 ou ultérieure enregistrent les traces au format Perfetto, tandis que les appareils antérieurs les enregistrent au format Systrace. Nous vous recommandons d'utiliser le lecteur de traces Perfetto pour ouvrir les deux formats, puis analyser les traces.

Il permet d'enregistrer les traces lorsque vous prévenez des bugs liés aux performances dans votre application, comme un démarrage lent, des transitions lentes ou des à-coups dans l'interface utilisateur.

Enregistrer une trace système

L'application de traçage système vous permet d'enregistrer une trace système à l'aide du bloc Quick Settings (Réglages rapides) ou d'un menu dans l'application elle-même. Les sections suivantes décrivent comment finaliser le processus d'enregistrement à l'aide de ces interfaces.

Enregistrer avec le bloc "Quick Settings" (Réglages rapides)

Le bloc Quick Settings (Réglages rapides) est en général le moyen le plus pratique d'exécuter le processus de traçage système sur l'appareil.

Configurer le bloc

Si vous utilisez le traçage système pour la première fois sur votre appareil de test ou si vous ne voyez pas le bloc System Tracing (Traçage système) dans le panneau Quick Settings (Réglages rapides) de votre appareil (figure 2), procédez comme suit :

  1. Activez les options pour les développeurs.
  2. Ouvrez l'écran des paramètres Developer Options (Options pour les développeurs).
  3. Dans la section Debugging (Débogage), sélectionnez System Tracing (Traçage système). L'application de traçage système s'ouvre et affiche le menu de l'application.
  4. Dans le menu de l'application, activez l'option Show Quick Settings tile (Afficher le bloc "Réglages rapides"), comme illustré dans la figure 1. Le système ajoute le bloc System Tracing (Traçage système) au panneau Quick Settings (Réglages rapides), comme illustré dans la figure 2 :

    Figure 1 : Bouton bascule Show Quick Settings tile (Afficher le bloc "Réglages rapides") dans l'application de traçage système.
    Figure 2 : Bloc System Tracing (Traçage système) du panneau Quick Settings (Réglages rapides)

    Remarque : Par défaut, le système ajoute le bloc System Tracing (Traçage système) comme premier bloc du panneau Quick Settings (Réglages rapides). Si vous souhaitez que le bloc s'affiche à un autre emplacement, utilisez le mode Édition du panneau pour le déplacer.

Terminer un enregistrement de trace système

Pour enregistrer une trace système à l'aide du panneau Quick Settings (Réglages rapides), procédez comme suit :

  1. Appuyez sur le bloc System Tracing (Traçage système) portant le libellé Record trace (Enregistrer une trace). Le bloc est activé et une notification persistante s'affiche pour vous avertir que le système enregistre une trace, comme illustré dans la figure 3 :

    Notification associée au message "Trace is being recorded. Tap to stop tracing." (L'enregistrement de la trace est en cours. Appuyez pour arrêter le traçage.)
    Figure 3 : Notification persistante qui apparaît après le démarrage d'une trace système de l'appareil
  2. Effectuez dans votre application les actions que le système doit inspecter.

  3. Arrêtez le traçage en appuyant sur le bloc System Tracing (Traçage système) dans le panneau Quick Settings (Réglages rapides) ou dans la notification de traçage système.

    Le système affiche une nouvelle notification contenant le message "Saving trace" (Enregistrement de la trace). Une fois l'enregistrement terminé, le système ignore la notification et en affiche une troisième, qui confirme que votre trace a été enregistrée et que vous êtes prêt à partager la trace système, comme illustré dans la figure 4 :

    Notification avec le message "Trace saved. Tap to share your trace." (Trace enregistrée. Appuyez pour partager votre trace.)
    Figure 4 : Notification persistante qui s'affiche une fois que le système a terminé la sauvegarde d'une trace enregistrée

Enregistrer via le menu de l'application

Le menu de l'application vous permet de configurer plusieurs paramètres avancés liés au traçage système et fournit un bouton bascule pour démarrer et arrêter une trace système.

Pour enregistrer une trace système à l'aide du menu de l'application de traçage système, procédez comme suit :

  1. Activez les options pour les développeurs.
  2. Ouvrez l'écran des paramètres Developer Options (Options pour les développeurs). Dans la section Debugging (Débogage), sélectionnez System Tracing (Traçage système). L'application de traçage système s'ouvre.

    Si vous configurez le bloc System Tracing (Traçage système), vous pouvez également appuyer dessus de manière prolongée pour accéder à l'application de traçage système.

  3. Assurez-vous que l'option Trace debuggable applications (Tracer les applications pouvant être déboguées) est sélectionnée afin d'inclure les applications pour lesquelles le débogage est activé dans la trace système.

  4. Vous pouvez également sélectionner les catégories d'appels système et capteurs à tracer sous Categories (Catégories), ainsi que la taille de la mémoire tampon par processeur (en Ko) sous Per-CPU buffer size (Taille de la mémoire tampon par processeur). Sélectionnez les catégories correspondant au cas d'utilisation que vous testez, comme la catégorie Audio pour les opérations Bluetooth ou la catégorie Memory (Mémoire) pour l'allocation de segments de mémoire.

  5. Si vous le souhaitez, sélectionnez Long traces (Traces allongées) pour activer les traces enregistrées en continu dans l'espace de stockage de l'appareil. Pour cette option, définissez des limites de taille maximale de trace allongée sous Maximum long trace size (Taille maximale des traces allongées) et de la durée maximale de trace allongée sous Maximum long trace duration (Durée maximale des traces allongées).

  6. Activez le bouton bascule Record trace (Enregistrer une trace) mis en évidence dans la figure 5. Le bloc est activé et une notification persistante s'affiche pour vous avertir que le système enregistre maintenant une trace, comme illustré dans la figure 3.

    Figure 5 : Bouton bascule Record trace (Enregistrer une trace) dans les réglages de traçage système
  7. Effectuez dans votre application les actions que le système doit inspecter.

  8. Arrêtez le traçage en désactivant le bouton bascule Record trace (Enregistrer une trace).

    Le système affiche une nouvelle notification contenant le message "Saving trace" (Enregistrement de la trace). Une fois l'enregistrement terminé, le système ignore la notification et en affiche une troisième, qui confirme que votre trace a été enregistrée et que vous êtes prêt à partager la trace système, comme illustré dans la figure 4.

Partager une trace système

L'application de traçage système vous aide à partager les résultats de trace système dans plusieurs workflows différents. Sur un appareil exécutant Android version 10 (niveau 29 d'API) ou ultérieure, les fichiers de suivi sont enregistrés avec l'extension de nom de fichier .perfetto-trace et peuvent être ouverts dans l'interface utilisateur de Perfetto. Sur un appareil exécutant une version antérieure d'Android, les fichiers de suivi sont enregistrés avec l'extension de nom de fichier .ctrace, qui indique le format Systrace.

Partager en tant que message

Le traçage système vous permet de partager la trace collectée avec d'autres applications sur votre appareil. Vous pouvez envoyer la trace à votre équipe de développement par e-mail ou via une application de suivi des bugs sans avoir à connecter un appareil à votre ordinateur de développement.

Après avoir enregistré une trace système, appuyez sur la notification qui s'affiche sur l'appareil, comme celle de la figure 4. Le sélecteur d'intent de la plate-forme s'affiche, ce qui vous permet de partager votre trace à l'aide de l'application de messagerie de votre choix.

Partager depuis l'application Fichiers

Sur les appareils équipés d'Android niveau 10 (niveau 29 d'API) ou ultérieure, les traces s'affichent dans l'application Fichiers. Vous pouvez partager une trace à partir de cette dernière.

Télécharger le rapport avec ADB

Vous pouvez également extraire une trace système d'un appareil à l'aide d'adb. Connectez l'appareil utilisé pour enregistrer la trace à votre ordinateur de développement, puis exécutez les commandes suivantes dans une fenêtre de terminal :

cd /path-to-traces-on-my-dev-machine && \
  adb pull /data/local/traces/ .

Convertir des formats de trace

Vous pouvez convertir les fichiers de suivi Perfetto au format Systrace. Pour en savoir plus, consultez Convertir des formats de trace.

Créer un rapport HTML

Lorsque vous partagez votre trace, le rapport se trouve dans un fichier .perfetto-trace (sur les appareils équipés d'Android version 10 ou ultérieure) ou dans un fichier .ctrace (pour toutes les autres versions).

Créez un rapport HTML à partir du fichier de suivi à l'aide d'une interface utilisateur Web ou de la ligne de commande.

Interface utilisateur Web

Utilisez l'interface utilisateur de Perfetto pour ouvrir le fichier de suivi et générer le rapport.

Pour un fichier Perfetto, cliquez sur Open trace file (Ouvrir un fichier de suivi). Pour un fichier Systrace, cliquez sur Open with legacy UI (Ouvrir avec l'ancienne interface utilisateur). L'apparence de l'ancienne interface utilisateur est identique à celle du rapport Systrace.

Ligne de commande

Exécutez les commandes suivantes dans une fenêtre de terminal pour générer un rapport HTML à partir du fichier de suivi :

cd /path-to-traces-on-my-dev-machine && \
  systrace --from-file trace-file-name{.ctrace | .perfetto-trace}

Si vous ne disposez pas encore du programme de ligne de commande systrace, vous pouvez le télécharger à partir du projet Catapult sur GitHub ou directement à partir du projet Android Open Source.