Découvrez le débugger
Le Debugger, c'est cette fenêtre qui s'ouvre automatiquement en bas d'Android Studio, lorsque vous lancez l'application en mode Debug.
Inspectez les variables
Lorsque le programme est suspendu à un point d'arrêt, vous avez plusieurs méthodes pour inspecter la valeur d'une variable :
La première méthode (1) consiste à regarder en fin de chaque ligne l'annotation ajoutée par Android Studio. Le texte en italique correspond à la valeur de la variable. Cela fonctionne bien pour les types simples (booléen, entier, chaîne de caractères, etc.). Cependant, ce n'est pas vraiment exploitable pour les objets : le nom de classe accolé d'un identifiant est affiché, ce qui n'aide pas vraiment. Pour les objets, optez plutôt pour les autres façons.
La deuxième méthode (2) consiste à positionner le curseur de la souris sur la variable que vous souhaitez inspecter. Au bout d'une seconde, une popup s'affiche. Cliquez dessus pour afficher les différents champs de l'instance. Si cette variable vous intéresse et que vous souhaitez continuer à l'observer, faites un clic droit dessus puis sélectionnez l'option Add to Watches. Vous la verrez ensuite apparaître dans la fenêtre du bas.
La troisième méthode (3) consiste à inspecter les variables présentes en bas de la fenêtre. Les variables affichées sont celles actuellement disponibles au moment où l'application est suspendue. Au fur et à mesure de l'exécution, certaines variables peuvent apparaître et d'autres disparaître. Par exemple au sein d'une boucle. Vous pouvez cliquer sur le petit triangle à côté de certaines variables. Cela vous permettra d'accéder aux attributs des objets.
Avancez pas à pas
Votre programme est suspendu à un point d'arrêt. C'est super, mais si vous ne faites rien, vous risquez d'attendre longtemps. Heureusement, certains boutons sont là pour vous aider. Ne prenez pas peur, il y en a un certain nombre :
Voici la description de chaque bouton :
Ramène à la ligne où le programme est suspendu. Très pratique si vous avez plusieurs fichiers ouverts ou que vous avez scrollé à l'autre bout du fichier.
Exécute la ligne suivante. Vous restez au sein de la méthode ou de la fonction dans laquelle vous êtes.
Si la ligne contient l'appel à une méthode (ou à une fonction), entre dans cette méthode puis suspend l'exécution sur sa première ligne de code. Si vous n'avez pas le code source de la méthode, Android Studio va tenter de décompiler le programme pour vous afficher le pseudo-code.
Idem que précédemment. Si pour une raison obscure le bouton précédent ne fonctionnait pas, utilisez celui-ci (je dois vous avouer que je n'ai quasiment jamais eu à l'utiliser).
Termine d'exécuter le code de la méthode courante puis suspend le programme au niveau de la méthode appelante.
Poursuit l'exécution du programme jusqu'au curseur. Il faut donc au préalable positionner le curseur de la souris sur une ligne de code de votre programme.
Évalue et exécute une expression. Dans certains cas, vous souhaitez connaître le résultat de l'appel à une méthode. Pour ce faire, copiez la ligne de code qui vous intéresse puis utilisez cette fonctionnalité. Vous verrez ainsi le résultat produit.
Poursuit l'exécution du programme jusqu'au prochain point d'arrêt (s'il y en a d'autres).
Affiche la liste des différents points d'arrêt (breakpoints) ou points d'observation (watchpoints).
Désactive tous les points d'arrêt positionnés. Il suffit d'appuyer de nouveau sur le bouton pour les réactiver. Cela est pratique lors d'une session de débug. Par exemple pour amener l'application dans un certain état sans être constamment interrompu par les points d'arrêt positionnés.
Débuggez à la volée
Parfois, il se peut que vous lanciez l'application normalement, et que vous constatiez un comportement anormal. Il serait dommage d'arrêter l'application pour la relancer en mode Debug, car vous perdriez l'état dans laquelle elle se trouve.
Heureusement, Android Studio vous permet de démarrer une session de Debug à la volée. Pour ce faire, il vous suffit de cliquer sur le bouton situé à gauche du bouton d'arrêt de l'application, vers le milieu de la barre d'outils :
Normalement, Android Studio vous propose automatiquement le bon processus. Si vous avez plusieurs émulateurs démarrés, ainsi que votre téléphone connecté, veillez à sélectionner le bon programme. Ensuite appuyez sur le bouton OK.
En résumé
Le débugger est une fenêtre qui vous permet de gérer votre application lorsque celle-ci est suspendue à un point d’arrêt.
Vous pouvez alors inspecter les variables de diverses manières, pour vérifier qu’elles ont bien les valeurs attendues.
Le débugger vous permet aussi d’avancer pas à pas lors de vos points d’arrêt afin d’analyser le comportement de votre application à certains endroits précis.
Vous pouvez lancer le débugger à la volée lorsque votre application est déjà lancée sur un appareil.
Le débugger n’a plus de secrets pour vous ! Suivez-moi dans le prochain chapitre pour effectuer une analyse statique de code !