Android Studio pour les débutants, Partie 4: Outils de débogage et plugins de productivité

Mise à jour: janvier 2020.

Android Studio offre une riche palette d'outils de développement intégrés et un écosystème de plugins encore plus abondant. Les trois premiers articles de cette série se sont concentrés sur l'installation, la configuration, le codage et l'exécution d'une application mobile simple avec Android Studio. Vous allez maintenant vous familiariser avec certains des outils les plus avancés: trois outils intégrés et trois plugins pour le débogage et l'amélioration de la qualité et de la productivité de votre code d'application Android.

Cet article présente les outils suivants pour Android Studio:

Outils de débogage intégrés

  • Logcat
  • Déboguer
  • Peluche

Plugins pour la productivité des développeurs

  • Idée ADB
  • Codota
  • Plugin Lombok

Nouveautés d'Android Studio 3.5

Découvrez ce qu'il faut rechercher dans la dernière version d'Android Studio, y compris la prise en charge de Kotlin et les améliorations de la gestion de la mémoire et de la réactivité de l'interface utilisateur.

Journalisation et débogage des applications Android

Une application buggy est un moyen sûr d'éloigner les clients potentiels. Logcat et Debug sont deux outils intégrés à Android Studio, que vous pouvez utiliser pour identifier et corriger les bogues dans votre code Android.

Journalisation Android: Logcat

Il se peut que vous n'ayez pas besoin ou que vous ne souhaitiez pas un débogueur complet pour chaque scénario "bogué". Dans certains cas, il suffit d'enregistrer et de corriger les valeurs de certaines variables. Logcat d'Android Studio est parfait pour cette tâche.

Logcat est un outil de ligne de commande (intégré à Android Debug Bridge - ADB) qui vide un journal des messages système qui peut vous aider à trouver et à résoudre les problèmes dans votre code. Les messages incluent des traces de pile lorsque l'appareil génère une erreur et les messages de journal que vous avez volontairement intégrés à la android.util.Logclasse. Logcat est tellement utile qu'il a été intégré directement dans Android Studio, où vous pouvez y accéder depuis le menu Affichage ou la barre de fenêtre d'outils.

Jeff Friesen

La fenêtre Logcat est divisée en une ligne horizontale de listes déroulantes et d'autres commandes suivies d'une zone de message. De gauche à droite, les contrôles sont:

  • Une liste déroulante identifiant les appareils connectés et les émulateurs. (Voir la figure 1.)
  • Une liste déroulante identifiant les packages APK installés sur l'appareil sélectionné.
  • Une liste déroulante des niveaux de journalisation:
    • Verbose: affiche tous les messages.
    • Débogage: affichez les messages du journal de débogage qui ne sont utiles que pendant le développement, ainsi que les niveaux de message inférieurs dans la liste déroulante.
    • Info: affiche les messages de journal attendus pour une utilisation régulière, ainsi que les niveaux de message inférieurs dans la liste déroulante.
    • Avertir: affiche les éventuels problèmes qui ne sont pas encore des erreurs, ainsi que les niveaux de message inférieurs dans la liste déroulante.
    • Erreur: affiche les problèmes qui ont provoqué des erreurs - les exceptions levées, ainsi que le niveau de message Assert.
    • Assert: affichez les problèmes dont le développeur s'attend à ce qu'ils ne se produisent jamais.
  • Une barre de recherche dans laquelle les seuls messages qui apparaissent sont ceux contenant le texte que vous tapez dans ce contrôle.
  • Une case à cocher qui vous permet d'utiliser des expressions régulières dans la barre de recherche. Par exemple, dans le contexte de la figure 1, vous pouvez spécifier SystemClock | AlarmManager (c'est-à-dire que le message doit contenir l'un ou l'autre des mots).
  • Une liste déroulante pour filtrer les messages, comprenant les options suivantes:
    • Aucun filtre (valeur par défaut) fait apparaître tous les messages de l'appareil sélectionné, quel que soit le package APK sélectionné.
    • Afficher uniquement l'application sélectionnée présente uniquement les messages pour le package APK sélectionné sur l'appareil sélectionné, qui sont du niveau de journal approprié ou inférieur.
    • Modifier la configuration du filtre vous permet de créer un filtre personnalisé.

Dans le code source, vous pouvez insérer des appels à diverses android.util.Logméthodes pour consigner les messages. Par exemple, vous pouvez appeler public static int i(String tag, String msg)pour consigner un INFOmessage de -level ou public static int w(String tag, String msg)pour consigner un WARNmessage de -level.

Pour les deux méthodes, la chaîne transmise à tagidentifie la source du message (par exemple, la méthode dans laquelle cette méthode de journalisation a été appelée) et la chaîne transmise à msgidentifie le message en cours de journalisation.

Sinon, vous pouvez appeler System.out« s et System.err» s print()et println()méthodes. Les appels aux System.outméthodes accomplissent la même chose que les log.i()appels; les appels aux System.errméthodes accomplissent la même chose que les log.w()appels.

Jeff Friesen

Dans la figure 2, les seuls messages affichés concernent l'exemple de processus d'application en cours d'exécution sur l'appareil Nexus 5X émulé. De plus, ces messages doivent contenir onCreateet être acceptés par le filtre Afficher uniquement les applications sélectionnées .

En savoir plus sur Logcat

Consultez «Écrire et afficher les journaux avec Logcat» de Google pour en savoir plus sur Logcat. Etudiez également la android.util.Logdocumentation de la classe.

Débogage Android: débogage

Utiliser Logcat pour enregistrer et corriger le code est acceptable pour les applications très simples. Pour les applications plus compliquées, cette forme de débogage peut être fastidieuse. Au lieu de cela, vous voudrez quelque chose qui vous permet de déboguer le code exécutable de l'application. L'outil de débogage intégré d'Android Studio offre de nombreuses fonctionnalités, notamment les suivantes:

  • Sélectionnez un appareil sur lequel déboguer votre application.
  • Définissez des points d'arrêt dans le code de votre application (Java, Kotlin ou C / C ++).
  • Examinez les variables et évaluez les expressions au moment de l'exécution.

Il y a quelques prérequis avant d'utiliser cet outil de débogage:

  1. Si votre application comprend du code source C / C ++, vous devrez installer LLDB à partir du SDK Manager (voir Figure 3). Heureusement, l'exemple d'application pour cette série ( W2A ) ne contient pas de code C / C ++, nous pouvons donc ignorer ce prérequis.

    Jeff Friesen

  2. Vous devez activer le débogage sur un appareil connecté. Cependant, si vous utilisez un émulateur (ce que nous sommes pour cet exemple), vous pouvez ignorer ce prérequis. Le débogage est activé par défaut sur les appareils émulés.
  3. Vous devez exécuter une variante de construction déboguable. Par défaut, il est créé pour vous, donc dans de nombreux cas (y compris cet exemple) vous n'avez pas à vous en soucier.

Passons en revue une session de débogage rapide.

Débogage Android simple

En supposant que vous exécutez Android Studio avec la fenêtre de l'éditeur de l'exemple d'application ( W2A.java ) ouverte, votre première étape consiste à définir un point d'arrêt sur la public void onCreate(Bundle savedInstanceState)ligne. Définissez le point d'arrêt en mettant cette ligne en surbrillance et en effectuant l'une des opérations suivantes:

  • Cliquez sur la zone de gouttière à gauche de la ligne; la ligne doit devenir rose en réponse.
  • Sélectionnez Basculer le point de rupture de ligne dans le menu Exécuter .
  • Appuyez simultanément sur Ctrl et F8 .

Sélectionnez maintenant Déboguer 'application' dans le menu Exécuter ou cliquez sur l'icône appropriée dans la barre d'outils. Si l'émulateur n'est pas en cours d'exécution, vous observerez la boîte de dialogue Sélectionner la cible de déploiement . J'ai sélectionné l' API 15 du Nexus 5X et j'ai cliqué sur OK .

Pendant que vous attendez que le périphérique émulé soit en ligne, cliquez sur le bouton Déboguer dans la barre de la fenêtre d'outils pour afficher la fenêtre de débogage . Finalement, vous devriez voir quelque chose de similaire à la figure 4.

Jeff Friesen

La fenêtre de débogage fournit des icônes pour passer au-dessus, dans et hors d'une méthode, et plus encore. La figure 5 montre ce qui se passe lorsque nous franchissons une méthode.

Jeff Friesen

Cliquez sur l'icône appropriée et sélectionnez Pas à pas dans le menu Exécuter ou appuyez sur F8 . Cela nous permet d'approfondir la onCreate()méthode tout en parcourant chaque appel de méthode.

Sélectionnez la ligne avec le }caractère de fermeture de la onCreate()méthode, puis sélectionnez Exécuter au curseur . Vous recevrez un avis indiquant que l'application est en cours d'exécution. Après avoir déverrouillé l'appareil, vous devriez voir la fenêtre d'activité de l'exemple d'application.

Jeff Friesen

En savoir plus sur le débogage

Consultez "Déboguer votre application" de Google pour en savoir plus sur le débogage dans Android Studio; par exemple, comment utiliser différents types de points d'arrêt.

Débogage avec GAPID

Bien que cela ne soit pas couvert ici, je vous recommande de consulter GAPID: Graphics API Debugger, une collection d'outils de débogage qui vous permettent d'inspecter, d'ajuster et de rejouer les appels d'une application Android vers un pilote graphique.

Inspection de code avec Lint

Quelle que soit la précision avec laquelle vous l'écrivez, votre code source est susceptible de contenir des bogues, des problèmes de style et peut faire référence à des ressources inactives pour une raison ou une autre. Un linter est un type d'outil qui analyse le code source à la recherche de preuves de ces éléments et d'autres morceaux de peluches désagréables, qu'il signale au développeur.

Lint est un linter intégré pour le SDK Android. Vous pouvez l'utiliser pour localiser des problèmes tels que des éléments obsolètes et des appels d'API qui ne sont pas pris en charge par votre API cible.

Pour exécuter Lint à partir d'Android Studio, sélectionnez Inspecter le code ... dans le menu Analyser . Cela active la boîte de dialogue Spécifier la portée de l'inspection .

Jeff Friesen

Dans la boîte de dialogue, sélectionnez la portée souhaitée (projet entier, dans ce cas), puis cliquez sur OK pour commencer l'inspection. Les résultats apparaîtront dans la fenêtre Résultats d'inspection , où ils sont organisés par catégorie.

Jeff Friesen

Fidèle à sa nature, Lint a sélectionné quelques morceaux de peluches qui pourraient autrement encombrer le code de l'application. Une fois repérés, il est facile de corriger les trois avertissements Java présentés dans la figure 8: déclarez androidAnimationprivateet supprimez simplement les transtypages des deux findViewById()appels de méthode.

En savoir plus sur Lint

Consultez «Améliorez votre code avec des vérifications de peluches» pour en savoir plus sur l'utilisation de Lint dans Android Studio et pour en savoir plus sur l'outil Lint autonome du SDK Android.

Installation et utilisation des plugins Android Studio

Si les outils intégrés ont leur mérite, de nombreux autres outils sont disponibles sous forme de plugins. Dans cette section, nous examinerons trois plugins pour améliorer la productivité de votre codage dans Android Studio:

  • Idée ADB
  • Codota
  • Plugin Lombok

Gestionnaire de plugins Android Studio

Le gestionnaire de plugins d'Android Studio facilite la recherche et l'installation de plugins. Activez le gestionnaire de plugins en sélectionnant Fichier > Paramètres puis Plugins dans la boîte de dialogue Paramètres :

Jeff Friesen

Ensuite, cliquez sur Parcourir les référentiels ... pour activer la boîte de dialogue Parcourir les référentiels , qui présente une liste complète des plugins pris en charge. Nous utiliserons cette boîte de dialogue pour sélectionner notre premier plugin, ADB Idea.

Jeff Friesen

Boostez votre productivité Android

Raccourcis de code: Idée ADB

ADB Idea accélère le développement Android au quotidien en fournissant un accès rapide aux commandes ADB couramment utilisées, telles que le démarrage et la désinstallation d'une application.

Sélectionnez ADB Idea dans la liste des plugins du référentiel, puis cliquez sur le bouton Installer . Android Studio procède au téléchargement et à l'installation du plugin. Il renomme ensuite Installer pour redémarrer Android Studio . Pour chaque plugin, j'ai dû resélectionner le plugin après avoir cliqué sur Redémarrer Android Studio , puis sur ce bouton une deuxième fois afin de redémarrer Android Studio.

Jeff Friesen

Une fois installé, Android Studio vous permet d'accéder à ADB Idea depuis son menu Outils . Sélectionnez Outils> Idée ADB et choisissez la commande appropriée dans le menu contextuel résultant.

Jeff Friesen

Après avoir sélectionné l'application ADB Restart , j'ai observé les messages suivants dans la fenêtre Journal des événements ainsi que l'application redémarrée sur mon appareil Amazon Kindle.

Jeff Friesen

Trouver le code utilisable: Codota

Vous pouvez utiliser le plugin Codota pour accéder au moteur de recherche Codota, qui vous permet de parcourir des millions d'extraits de code source Java disponibles publiquement pour trouver des solutions aux problèmes de codage Android.

Jeff Friesen

Sélectionnez Codota dans la liste des plugins du référentiel, puis cliquez sur le bouton Installer . Une fois qu'Android Studio a téléchargé et installé le plug-in, il renommera le bouton Installer pour redémarrer Android Studio . Le redémarrage active Codota.

Au redémarrage, vous rencontrerez la boîte de dialogue d' authentification Codota . Cliquez sur le lien et suivez les instructions pour recevoir le jeton. Ensuite, collez le jeton dans la boîte de dialogue susmentionnée et cliquez sur OK .

Jeff Friesen

Android Studio vous permet d'accéder à Codota en cliquant avec le bouton droit sur le code Java dans la fenêtre de l'éditeur et en sélectionnant l' élément de menu Obtenir des exemples pertinents , comme illustré à la Figure 16.

Jeff Friesen

En cliquant sur cet élément de menu, le navigateur présente une page avec des exemples de code pertinents. Par exemple, la page suivante présente des exemples pertinents pour findViewById:

Jeff Friesen

Générer automatiquement du code Java: Lombok

Project Lombok propose un ensemble d'annotations que vous pouvez utiliser à la place du code standard, vous permettant ainsi de gagner du temps en écrivant ce code à la main.

Jeff Friesen

Sélectionnez Lombok Plugin dans la liste des référentiels des plugins, puis cliquez sur Installer . Une fois qu'Android Studio a téléchargé et installé le plugin, il vous demandera de redémarrer Android Studio . Le redémarrage active le plugin Lombok.