Un point d'arrêt permet de suspendre l'exécution de votre application à un endroit précis. Vous pouvez ainsi analyser la valeur de chaque variable, pour vous assurer que tout se déroule correctement. Si tout vous semble OK, vous pouvez demander la reprise de l'exécution. Ce mécanisme est bien plus puissant et efficace que les traces, car vous voyez en temps réel où vous en êtes. Et cela vous évite de lire des dizaines, parfois des centaines de lignes de traces.
Vous utiliserez principalement deux types de points d'arrêt :
Un watchpoint : sur une variable de classe. À chaque fois que cette variable sera modifiée (voire accédée), votre programme sera suspendu.
Un breakpoint : au sein d'une méthode ou d'une boucle. À chaque fois que le code correspondant sera sur le point d'être exécuté, votre programme sera suspendu.
Positionnez les points d'arrêt
Pour positionner un point d'arrêt, vous allez avoir besoin de votre main droite (ou gauche, mais c'est plus rare) et d'une souris. Localisez les lignes de code ou les variables qui vous intéressent, puis cliquez avec le bouton gauche de la souris sur le côté de la fenêtre. Entre le numéro de ligne et le code correspondant. Cela aura pour effet d'ajouter un gros point rouge, comme ceci :
Dans l'image ci-dessus, vous pouvez distinguer les deux types de points d'arrêt :
Des points d’arrêt sur une variable (watchpoint), avec un œil rouge.
Des points d’arrêt sur une méthode ou une boucle (breakpoint), avec un cercle rouge.
Avant de lancer l'application MemeTastic, positionnez un point d'arrêt dans la méthode onCreate() du fichier MainActivity.java, par exemple sur la ligne 139.
Lancez l'application en mode Debug
Avant de lancer l'application, vérifiez que cette dernière est compilée en mode Debug. Pour ce faire, cliquez en bas à gauche sur l'onglet Build Variants, puis repérez la colonne Build Variant.
Repérez maintenant le bouton de lancement de l'application en mode Debug, vers le milieu de la barre d'outils d'Android Studio.
Une fois l'application lancée, ne vous étonnez pas de voir l'écran de votre émulateur (ou de votre téléphone) tout blanc. En effet, votre application est suspendue, sachant que vous avez positionné un point d'arrêt dans la méthode onCreate(). Votre instance d'Android Studio doit ressembler à peu près à cela :
Dans la partie 1, vous voyez le code source de l'application, avec certaines annotations :
en italique, la valeur courante des variables ;
en bleu, la ligne correspondant à l'endroit précis où le programme est actuellement suspendu.
Dans la partie 2, vous voyez une fenêtre spécifique pour débugger l'application. Sur la partie gauche, vous retrouvez la pile d'exécution que nous avons étudiée dans le chapitre précédent. Sur la partie droite, vous pouvez voir la valeur de différentes variables. Nous allons étudier cela plus en détail dans le chapitre suivant.
En résumé
Les points d’arrêt permettent de stopper votre application à un endroit précis afin d’analyser son comportement.
Un watchpoint correspond à une variable de classe observée.
Un breakpoint correspond à une ligne de code exécutée.
Lancez l’application en mode Debug pour activer le lancement des points d’arrêt.
Vous savez désormais utiliser les points d’arrêt ! Dans le prochain chapitre, nous découvrirons comment utiliser le débugger.