Comment capturer localement une trace système sur Android Pie

systrace est un outil puissant qui collecte des informations de synchronisation à partir des processus exécutés sur Android. Voici comment capturer une trace système sur Android Pie.

Le traçage est un outil précieux qui permet aux développeurs de comprendre l’impact de divers changements sur un système et peut fournir des indices pour identifier la cause première des problèmes.

trace système est l'un de ces outils de traçage puissants qui collecte des informations temporelles à partir des processus fonctionnant sur un appareil Android. trace système a été largement utilisée par les Équipe de performances Android chez Google pour optimiser les performances sur les téléphones Google Pixel. j'ai utilisé trace système pour inspecter l'impact des modifications du planificateur du noyau sur le placement des tâches sur les processeurs, par exemple, et pour identifier les causes possibles des erreurs. trace système peut capturer une grande variété de données, notamment la planification du processeur, la fréquence du processeur, les E/S du disque, les graphiques, l'activité du Binder et bien plus encore. Les informations sont combinées dans un rapport qui peut être analysé dans Google Chrome.

Avant Android Pie, le seul moyen de capturer des traces avec trace système consistait à connecter un appareil Android à un ordinateur et à exécuter systrace à partir de là, généralement à partir d'un terminal. Cependant, tout le monde n’a pas constamment accès à un ordinateur, ni les connaissances et la confiance nécessaires pour exécuter Systrace.

Avec la sortie d'Android Pie, cet inconvénient a été résolu avec l'introduction du Package Traceur, qui est un outil qui capture les données de trace brutes directement sur un téléphone Android. Traceur est disponible en tant qu'option « Traçage du système » dans les options de développement de l'application Paramètres, et les données de trace brutes capturées sur l'appareil par Traceur peuvent ultérieurement être converties par trace système à un rapport HTML pour analyse.

La nouvelle option « System Tracing » permet aux utilisateurs de capturer et de partager facilement des traces avec les développeurs, sans avoir besoin de savoir réellement comment exécuter trace système sur un ordinateur. Les développeurs bénéficient de la possibilité de capturer des traces sans ordinateur et de les analyser ultérieurement à leur convenance. Les données de trace brutes complètes collectées par « System Tracing » sont également nettement plus petites que le rapport HTML généré par trace système, ce qui rend donc les données de trace brutes plus adaptées au stockage et au partage avec d'autres.

Guide: Collecte du système et analyse des traces du système

Tout d’abord, assurez-vous que vous disposez d’un appareil exécutant Android Pie et d’un ordinateur sur lequel Python 2 est installé. Les instructions suivantes ont été effectuées sur un OnePlus 6 exécutant la dernière version bêta d'OxygenOS Android Pie.

  1. Activez les options de développement dans l'application Paramètres, puis accédez à l'option « Traçage du système » dans la section « Débogage » des options du développeur.
  2. Lors de l'ouverture du traçage du système, une bascule vous sera présentée pour activer le traçage du système et la possibilité de personnaliser les catégories de traçage et la taille du tampon des traces. Pour cette démonstration, les catégories par défaut sont utilisées, ce qui est suffisant dans la plupart des cas. Une bascule « Afficher la vignette des paramètres rapides » permet de démarrer/arrêter le traçage via les paramètres rapides. J'ai activé cela pour ce guide.
  3. Pour commencer à capturer une trace, appuyez sur la vignette de paramètres rapides « Enregistrer la trace » récemment ajoutée.
  4. Lorsque vous avez terminé de tracer un scénario de test, vous pouvez arrêter le traçage à partir de l'ombre de notification.
  5. Super! Vous avez réussi à capturer une trace brute. Une notification vous invitera à partager le fichier de trace brut. Vous devriez pouvoir l'enregistrer sur votre appareil, le télécharger sur un stockage en ligne, l'envoyer par e-mail à quelqu'un, etc. Alternativement, vous pouvez utiliser ADB pour extraire directement la trace de votre appareil vers votre ordinateur (adb pull /data/local/traces/). Allez-y et enregistrez le fichier de trace sur votre ordinateur.
  6. Le fichier de trace brut a le format Format .ctrace. Il ne peut pas être interprété sous sa forme brute. On peut utiliser trace système pour générer un rapport HTML interactif plus utile et plus compréhensible à partir de notre fichier de trace brut.
  7. Nous utiliserons la dernière version de trace système du dépôt du projet de catapulte. Dans une application de terminal, clonez le dépôt (assurez-vous que git est installé) :
    git clone https://github.com/catapult-project/catapult.git
  8. Pour générer le rapport HTML à partir de notre fichier de trace brut en utilisant trace système, saisissez les commandes suivantes :
    python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
    Un fichier HTML portant le même nom que le fichier de trace brut sera généré. Remarque: systrace ne prend en charge que Python 2 au moment de la rédaction.
  9. Pour afficher le rapport HTML, lancez le navigateur Google Chrome et accédez à l'URL « chrome://tracing ». N'ouvrez pas le rapport HTML directement dans Google Chrome car il apparaîtra vide.
  10. Cliquez sur « Charger » et ouvrez le fichier de rapport HTML à partir de la boîte de dialogue contextuelle. Voilà! Votre rapport de trace est maintenant disponible pour inspection.

Et après?

Maintenant que vous êtes capable de capturer une trace et de générer un trace système rapport, il est important de comprendre comment lire et interpréter les données présentées dans le rapport. Pour commencer, je recommande de lire «Compréhension Systrace», et en regardant «Performances Android: un aperçu (Google I/O '17)" et "Systrace pour les jeux" voir trace système en action.

Il s'agit d'un article invité initialement écrit par Josh Choo, également connu sous le nom de développeur reconnu par XDA. joshuous. Le message a été légèrement modifié pour le formatage.