Guide: Envoi d'un logcat pour aider à déboguer votre application préférée

Cela nous est arrivé à un moment ou à un autre. Il n'y a pas de honte à l'admettre. Parfois, les applications Android se plantent. Que vous utilisiez un appareil entièrement standard pour exécuter Google Maps ou une ROM hautement personnalisée avec un module Xposed pour améliorer Google Hangouts, des blocages d’application et d’autres problèmes peuvent se produire et même devenir un véritable obstacle. Cela est particulièrement vrai dans le développement de réglages et d'applications à plus petite échelle, comme ceux que l'on trouve sur notre site Web. En cas de problème, l’un des éléments les plus constructifs et les plus utiles que l’utilisateur puisse donner au développeur sur la nature de l’incident consiste à fournir un Logcat. Bien qu’il soit extrêmement utile pour les développeurs, l’obtention de ces informations peut sembler décourageante pour un utilisateur régulier.

S'appuyant généralement sur des outils de ligne de commande via ADB, Logcat est hors de portée des utilisateurs qui n'ont que peu, voire aucune expérience de la ligne de commande. Cependant, la sortie de certaines applications a éliminé, ou du moins considérablement réduit, l’implication des commandes ADB dans la récupération et l’envoi d’un Logcat, ce qui le rend aussi simple que quelques tapotements à l’écran. Dans notre mission sans fin d’aide au développement pour les développeurs, voici un guide du débutant pour expliquer aux utilisateurs comment envoyer un Logcat.


Qu'est-ce qu'un Logcat et comment pouvons-nous en tirer un?

Un Logcat est un outil ADB Shell utilisé pour extraire un journal de tous les événements système. Cela inclut les erreurs, les avertissements, les traces de pile et les occurrences générales du système. En cas d'erreur, ce journal contient des informations clés pointant vers la source de l'échec, ce qui en fait un outil très utile pour le dépannage. Normalement, ceux-ci sont extraits et filtrés via des commandes ADB. Toutefois, des applications telles que aLogcat, Catlog et notre outil de choix pour cet article, Matlog, ont permis aux utilisateurs d'économiser leurs efforts en compilant ces outils de commande dans l'interface graphique d'une application téléchargeable au Play-Store.

Comme mentionné, Matlog est ce que nous utilisons pour collecter Logcats. Choisi pour son interface simple et conviviale, Matlog a été créé par Junior Member plusCubed et est basé sur l'application à code source ouvert Catlog de Nolan Lawson. Comme Catlog , Matlog peut être compilé à partir des sources ou téléchargé gratuitement à partir du Google Play Store. Bien qu'être root vous permette de sauter une étape lors de la configuration, l'accès root n'est pas nécessaire pour collecter Logcats . Si votre périphérique n'est pas enraciné, une seule commande de shell ADB accordera à l'application l'accès pour lire les journaux de votre périphérique. ADB n’a pas encore été configuré sur votre machine? Pas de problème, il suffit de suivre ces étapes pour le rendre opérationnel.

Remarque: les téléphones Huawei ont complètement désactivé la sortie Logcat. Vous devrez modifier un paramètre masqué avant de continuer avec le reste de ce guide.


Mise en place de la BAD

Tout d’abord, téléchargez le fichier binaire ADB directement à partir de Google pour votre système d’exploitation et extrayez-le dans un répertoire distinct de votre ordinateur. Ensuite, installez le pilote approprié pour votre téléphone. Ensuite, activez «Débogage USB» dans Paramètres -> Options du développeur. Si vous ne voyez pas les options pour les développeurs, vous devrez l'activer en accédant à Paramètres -> À propos du téléphone, puis en appuyant 7 fois sur le numéro de build. Enfin, assurez-vous que ADB fonctionne en lançant une invite de commande dans le même répertoire que le fichier binaire ADB (cliquez avec le bouton droit de la souris sur>> «ouvrir l'invite de commande ici»), puis exécutez la commande suivante:

 adb devices 

Si vous voyez le numéro de série de votre appareil (et qu'il ne dit pas non autorisé), vous êtes en or. Si une fenêtre contextuelle vous demandant d’accorder l’accès ADB à votre ordinateur vous est proposée, dites oui. Si cela ne se produit pas, essayez de redémarrer votre ordinateur / téléphone et de le rebrancher sur votre ordinateur. Sinon, essayez de réinstaller le pilote.


Mise en place de Matlog

Maintenant que ADB est opérationnel (espérons-le), tout ce que vous avez à faire pour permettre à Matlog de capturer Logcats est d'émettre la commande suivante dans un shell ADB. Encore une fois, si votre appareil est déjà enraciné, vous n’avez pas besoin de lancer cette commande car elle n’est nécessaire que pour les téléphones non racinés.

 adb shell pm grant com.pluscubed.matlog android.permission.READ_LOGS 

Matlog Record Widget à côté de l'application défectueuse

Une fois activé et ouvert, Matlog affichera les événements du système en temps réel. Vous pouvez appuyer sur le bouton de pause pour arrêter cela, puis appuyez sur le menu ellipses et sélectionnez «effacer» pour supprimer le champ des données superflues. Il est recommandé de le faire en vue de la journalisation de l'application défectueuse afin de réduire la taille du journal. Pour raccourcir les étapes, et donc la longueur du journal encore plus loin, ajoutez le widget Matlog à votre écran d'accueil à côté de l'application en panne, comme indiqué à droite. Dans ce cas, Apktool X est notre application défectueuse.

En appuyant sur le widget, vous pouvez nommer et commencer à enregistrer un journal. Ensuite, reproduisez simplement le dysfonctionnement immédiatement après le début de la journalisation, ce qui remplira le Logcat avec les informations pertinentes pour votre problème. Une fois le problème reproduit, appuyez de nouveau sur le widget pour terminer l'enregistrement du journal.

Ce faisant, Matlog ouvrira le journal capturé. Appuyez sur les points de suspension, puis sélectionnez «Envoyer» pour envoyer le journal par courrier électronique sous forme de fichier texte joint accompagné d'informations générales sur le périphérique. C'est ça! Votre Logcat a été capturé avec succès et envoyé au professeur Oak.

Dans l'exemple ci-dessus, je peux dire que la panne d'Apktool X était due au fait que mon appareil n'était pas enraciné. Doh! J'aurais dû bien lire l'article avant d'essayer d'utiliser l'application.

C'était trop facile

Bien sûr, tous les problèmes ne sont pas aussi faciles à saisir. Parfois, des problèmes liés au démarrage ou des problèmes qui s'étendent sur de plus longues périodes peuvent nécessiter différentes fonctionnalités de l'application à capturer. Dans de tels cas, vous souhaiterez laisser Matlog s'exécuter en arrière-plan (sans pause ni l'effacer) et utiliser les fonctions de niveau de journalisation et de filtrage pour analyser les données.

Bien que ce ne soit généralement pas la seule méthode nécessaire pour collecter des données pertinentes (certaines situations requièrent plus de contexte), chacun de ces outils peut être utilisé dans des journaux plus longs pour trier et spécifier des données pour le développeur. Naturellement, cela dépend de la nature de l'erreur et de la demande du développeur. Pour utiliser l'une de ces méthodes, exécutez simplement Matlog, reproduisez votre problème, revenez dans Matlog, appuyez sur le menu à points et sélectionnez l'une de ces deux méthodes de tri.

Sélection du niveau de journalisation affichant uniquement les erreurs

Niveau de journalisation

Une autre commande ADB simplifiée par Matlog, la fonction Log Level permet d’afficher des types spécifiques d’événements système et de messages. Vous trouverez ci-dessous une brève description des différents types de message, tels que décrits sur le site Web des développeurs Android et dotés d'un code de couleur correspondant à l'étiquetage de Matlog.

De la plus basse à la plus haute priorité:

  • V: Verbose (événements système généraux)
  • D: déboguer
  • I: Information
  • W: avertissement
  • E: erreur
  • F: fatal
  • S: Silencieux (Priorité la plus élevée sur laquelle rien n'est jamais imprimé)

La fonction Niveau de journal a une liste correspondante de ces messages, qui peuvent filtrer le journal à chaque niveau de priorité. La sélection d'un niveau de journalisation n'affichera que les événements ayant son propre niveau de priorité et plus, facilitant l'identification et le regroupement des erreurs au lieu de nécessiter un défilement manuel de nombreuses lignes de texte (parfois plusieurs milliers).

Ensemble de filtres de recherche pour «Apktool»

Les filtres

Des filtres peuvent également être utilisés pour trier les données du journal. En lançant une recherche par mot clé, l'utilisateur est autorisé à voir uniquement les messages qui font explicitement référence à ce mot clé. Les mots clés utiles peuvent inclure le nom de l'application défectueuse ou même le mot «erreur», car il englobe des occurrences du terme à tous les niveaux de priorité, bien qu'il n'englobe pas toutes les erreurs de «niveau de consignation».

Si vous cherchez souvent à filtrer / filtrer certains mots clés lorsque vous aidez un développeur à déboguer une application (ou si le développeur a explicitement créé un événement de journal unique que vous pouvez rechercher), vous pouvez également enregistrer un filtre dans lequel vous pourrez revenir. l'avenir. Ceci est utile lorsque vous savez à l’avance ce que vous recherchez, ce qui arrivera souvent si vous travaillez en collaboration avec un développeur.

Prêt à déboguer?

Même si vous n'êtes peut-être plus un expert du débogage d'applications Android, apprendre à rassembler et à envoyer Logcats peut faire de vous une excellente ressource pour les développeurs de vos applications préférées. Utiliser Matlog, et les fonctionnalités décrites ci-dessus, rassembler, trier et envoyer des informations pertinentes sur une application défectueuse n'a jamais été aussi simple.


Avez-vous utilisé Matlog ou une autre application Logcat? Avez-vous trouvé ce guide utile? Faites-nous savoir dans les commentaires ci-dessous!