0Pricing
Android Academy · Leçon

Débogage et profilage

Maîtrisez les outils de débogage et de profilage d’Android Studio : points d’arrêt, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector et Layout Inspector.

Débogage et profilage est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

Vue d’ensemble du débogage

Le débogage consiste à trouver et corriger les bogues. Android Studio fournit des outils puissants :

  • Débogueur — mettre l’exécution en pause, examiner les variables et parcourir le code pas à pas
  • Logcat — sortie des journaux de l’appareil en temps réel
  • Inspecteur de mise en page — examiner la hiérarchie réelle de l’interface
  • Profileur du CPU — analyser le CPU, la mémoire et le réseau
  • Inspecteur de base de données — consulter et interroger les bases de données Room en temps réel

Logcat — Votre premier outil de débogage

Utilisez Log pour afficher des messages dans Logcat. Utilisez un TAG pour filtrer vos journaux :

import android.util.Log

class UserRepository {
    companion object {
        private const val TAG = "UserRepo"
    }

    fun fetchUsers() {
        Log.d(TAG, "fetchUsers() called")        // Debug
        Log.i(TAG, "Fetching ${users.size} users") // Info
        Log.w(TAG, "Cache is empty")               // Warning
        Log.e(TAG, "Network error: $exception")    // Error
    }
}

Timber — Une meilleure journalisation

Timber est une fine couche d’abstraction autour de Log qui supprime les appels de journalisation des versions de production et ajoute automatiquement le nom de la classe comme TAG :

// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'

// In Application.onCreate():
if (BuildConfig.DEBUG) {
    Timber.plant(Timber.DebugTree())
}

// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)

Points d’arrêt et débogueur

Étapes pour déboguer avec des points d’arrêt dans Android Studio :

  1. Cliquez dans la gouttière (la marge gauche) à côté d’une ligne de code — un point rouge apparaît
  2. Lancez l’application avec Déboguer (icône représentant un insecte) au lieu de Exécuter
  3. Lorsque l’exécution atteint le point d’arrêt, elle se met en pause
  4. Examinez les variables dans le volet Variables
  5. Utilisez Passer au-dessus (F8) pour avancer ligne par ligne et Entrer dans (F7) pour entrer dans une fonction

Évaluer l’expression

Pendant une pause sur un point d’arrêt, utilisez Évaluer l’expression (Alt+F8) pour exécuter du code Kotlin dans la portée actuelle. Vérifiez vos hypothèses sans redémarrer :

  • Vérifiez list.size et user.email.isNotBlank()
  • Appelez n’importe quelle méthode et observez la valeur renvoyée
  • Examinez des objets complexes directement dans le code

Profileur de mémoire

Trouvez les fuites de mémoire avec le Profileur de mémoire (Affichage → Fenêtres d’outils → Profileur) :

  • Surveillez la taille du tas au fil du temps — une croissance constante indique probablement une fuite
  • Forcez le ramasse-miettes et observez si la mémoire diminue
  • Créez un instantané du tas pour voir quels objets sont encore actifs
  • Recherchez les instances d’Activity ou de Fragment qui auraient déjà dû être récupérées par le ramasse-miettes

LeakCanary — Détection automatique des fuites

LeakCanary détecte et signale automatiquement les fuites de mémoire sous forme de notifications dans les versions de débogage :

// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'

// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.

// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregistered

Profileur du CPU

Trouvez les goulots d’étranglement des performances avec le Profileur du CPU :

  • Enregistrez une trace pendant l’exécution d’une action
  • Consultez un graphique en flamme pour voir quelles méthodes prennent le plus de temps
  • Recherchez les opérations longues sur le thread principal — elles rendent l’interface saccadée
  • Déplacez les calculs lourds vers Dispatchers.IO ou Dispatchers.Default

Inspecteur réseau

L’Inspecteur réseau affiche en temps réel tous les appels HTTP effectués par votre application :

  • Consultez l’URL, la méthode, les en-têtes et le corps de la requête
  • Consultez le code, le corps et la durée de la réponse
  • Identifiez les requêtes lentes ou en échec
  • Fonctionne immédiatement avec OkHttp (utilisé par Retrofit)

Accédez-y via Affichage → Fenêtres d’outils → Inspection de l’application → Inspecteur réseau.

Inspecteur de base de données

Examinez et interrogez votre base de données Room en temps réel sur un appareil en cours d’exécution :

  • Consultez les tables et leur contenu
  • Exécutez des requêtes SQL personnalisées
  • Observez les données changer lorsque vous utilisez l’application

Accédez-y via Inspection de l’application → Inspecteur de base de données. Fonctionne avec Room sur l’API 26 et les versions ultérieures.

Inspecteur de mise en page

L’Inspecteur de mise en page affiche une vue 3D en temps réel de la hiérarchie de votre interface :

  • Sélectionnez n’importe quelle vue pour voir ses attributs (marges, remplissage, texte, couleur)
  • Repérez les vues qui se chevauchent ou dont la visibilité est incorrecte
  • Déboguez les problèmes de mise en page sans tâtonner

Accédez-y via Affichage → Fenêtres d’outils → Inspecteur de mise en page. Connectez-vous à une application en cours d’exécution sur un appareil ou un émulateur.

StrictMode

StrictMode détecte les opérations accidentellement lentes sur le thread principal (lectures sur le disque, appels réseau) et consigne un message ou fait planter l’application dans les versions de débogage :

// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
    StrictMode.setThreadPolicy(
        StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()      // log violations instead of crashing
            .build()
    )
}

Vérification rapide

Quel outil détecte automatiquement les fuites de mémoire dans les versions de débogage Android sans code supplémentaire ?

Récapitulatif : débogage et profilage

Trouvez et corrigez efficacement les problèmes :

  • Logcat + Timber — journalisation légère, automatiquement supprimée dans les versions de production
  • Points d’arrêt + débogueur — mettre l’exécution en pause et l’examiner en direct
  • Profileur de mémoire — détecter la croissance du tas et les fuites
  • LeakCanary — détection automatique des fuites avec une trace de la pile
  • Profileur du CPU — trouver les méthodes lentes sur le thread principal
  • Inspecteur réseau — surveiller les appels HTTP
  • Inspecteur de base de données — interroger Room en temps réel
  • StrictMode — détecter les opérations IO accidentelles sur le thread principal

Félicitations — vous avez terminé l’intégralité du cours de développement Android !

Questions Fréquemment Posées

La leçon « Débogage et profilage » est-elle gratuite ?

Oui — le texte complet de « Débogage et profilage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Débogage et profilage » ?

Maîtrisez les outils de débogage et de profilage d’Android Studio : points d’arrêt, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector et Layout Inspector. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Débogage et profilage » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Tests unitaires avec JUnit
  2. Simulation avec Mockito
  3. Tests d’interface avec Espresso
  4. Débogage et profilage
← Retour à Android Academy