Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
Flutter

Executer votre application flutter sur un appareil mobile Android

Un cours complet pour maîtriser Executer votre application flutter sur un appareil mobile Android.

0 chapitres 0 QCM Accès gratuit
Dans cet article
  1. Objectifs du cours

    • À la fin de ce cours, vous serez capable de :
      • expliquer pourquoi il faut tester une application sur un vrai téléphone, en plus de l'émulateur ;
      • activer les options pour les développeurs et le débogage USB sur un téléphone Android, quelle que soit sa marque ;
      • installer le pilote USB nécessaire sous Windows ;
      • connecter le téléphone, autoriser l'ordinateur et vérifier la connexion avec adb et flutter devices;
      • exécuter, recharger et déboguer une application Flutter sur le téléphone depuis VS Code ou le terminal ;
      • utiliser le débogage sans fil (Wi-Fi) pour travailler sans câble ;
      • installer une version finale de l'application (APK) sur un téléphone ;
      • résoudre seul les problèmes de connexion les plus fréquents.
  2. Description du cours

    • Ce cours vous guide étape par étape pour faire tourner votre application Flutter sur votre propre téléphone Android, d'abord avec un câble USB, puis en Wi-Fi. Chaque étape se termine par un point de contrôle: ne passez à l'étape suivante que si le résultat attendu est obtenu.
    • Public visé : développeurs Flutter débutants, étudiants en développement mobile.
    • Prérequis : VS Code avec les extensions Flutter et Dart, le SDK Flutter et Android Studio installés, flutter doctor sans erreur sur la ligne Android toolchain (voir les leçons précédentes du chapitre).
    • Matériel : un téléphone ou une tablette Android et un câble USB capable de transférer des données.
    • Durée estimée : 1 h 30 à 2 heures.
  3. Pourquoi tester sur un vrai téléphone ?

    • L'émulateur est pratique pour développer, mais seul un vrai téléphone montre exactement ce que verra l'utilisateur :
      • les vraies performances : fluidité des animations, temps de chargement, consommation de batterie ;
      • le vrai écran : taille, encoche (notch), luminosité, confort de lecture et taille des boutons sous le doigt ;
      • les vrais capteurs : appareil photo, GPS, empreinte digitale, accéléromètre, notifications ;
      • la surcouche du fabricant : Samsung, Xiaomi, Oppo… modifient parfois le comportement d'Android (gestion de la batterie, permissions).
    • C'est aussi la solution idéale si votre ordinateur est trop faible pour faire tourner un émulateur : le téléphone ne consomme presque aucune ressource sur le PC.
  4. Étape 1 : préparer le matériel

    • 1.1. Le téléphone
      • Noter la version d'Android du téléphone : Paramètres → À propos du téléphone. Les versions récentes de Flutter demandent un Android assez récent ; le débogage sans fil (étape 7) nécessite Android 11 ou plus.
      • Charger le téléphone et le déverrouiller pendant toute la manipulation.
    • 1.2. Le câble USB
      • Beaucoup de câbles livrés avec des chargeurs ou des accessoires ne servent qu'à charger: ils ne transmettent pas de données et le téléphone ne sera jamais détecté.
      • Pour tester un câble : branchez le téléphone et vérifiez que vous pouvez parcourir ses fichiers depuis l'Explorateur Windows. Si rien n'apparaît, changez de câble avant d'aller plus loin.
      • Branchez de préférence le câble directement sur l'ordinateur, sans hub ni rallonge USB.
    • 1.3. L'ordinateur
      • Exécuter flutter doctor dans un terminal : la ligne Android toolchain doit avoir une coche verte. Sinon, exécuter flutter doctor --android-licenses et relire la leçon Flutter Doctor.
Point de contrôle 1 : vous connaissez la version d'Android du téléphone, le câble permet de voir ses fichiers depuis le PC et flutter doctor ne signale aucune erreur Android.
  1. Étape 2 : activer les options pour les développeurs

    • Les réglages de développement sont cachés par défaut. Pour les faire apparaître, il faut appuyer 7 fois de suite sur le numéro de version du système, jusqu'au message « Vous êtes maintenant développeur ! ». Le téléphone peut demander votre code de déverrouillage.
    • L'emplacement de ce numéro dépend de la marque :
Marque Où appuyer 7 fois Où trouver ensuite les options pour les développeurs
Google Pixel et Android « pur » Paramètres → À propos du téléphone → Numéro de build Paramètres → Système → Options pour les développeurs
Samsung Galaxy Paramètres → À propos du téléphone → Informations sur le logiciel → Numéro de version Paramètres → Options de développement (tout en bas)
Xiaomi, Redmi, Poco Paramètres → À propos du téléphone → Version de HyperOS (ou Version de MIUI) Paramètres → Paramètres supplémentaires → Options pour les développeurs
Oppo, Realme, OnePlus Paramètres → À propos de l'appareil → Version → Numéro de build Paramètres → Paramètres supplémentaires → Options pour les développeurs
Autres marques Chercher « Numéro de build » ou « Version » dans la barre de recherche des paramètres Chercher « développeur » dans la barre de recherche des paramètres
Astuce : les noms exacts varient selon la version du système. En cas de doute, utilisez la loupe en haut des paramètres et tapez build, version ou développeur.
Point de contrôle 2 : le message « Vous êtes maintenant développeur ! » s'est affiché et le menu Options pour les développeurs est visible dans les paramètres.
  1. Étape 3 : activer le débogage USB

    • Ouvrir Options pour les développeurs et vérifier que l'interrupteur général en haut de la page est activé.
    • Descendre jusqu'à la rubrique Débogage et activer Débogage USB. Confirmer avec OK.
    • Réglages supplémentaires selon la marque
      • Xiaomi, Redmi, Poco : activer aussi Installer via USB et Débogage USB (paramètres de sécurité). Ces options peuvent demander une carte SIM et un compte Xiaomi connecté. Sans elles, l'installation de l'application est refusée.
      • Samsung (One UI 6 et plus) : si le débogage USB ne fonctionne pas, vérifier que Blocage automatique (Auto Blocker) est désactivé dans Paramètres → Sécurité et confidentialité: il bloque les commandes envoyées par USB.
      • Oppo, Realme : activer aussi Désactiver la surveillance des autorisations si l'installation est bloquée.
    • Réglages utiles pendant le développement (facultatifs)
      • Rester activé: l'écran ne s'éteint pas tant que le téléphone est en charge.
      • Afficher les appuis: un point blanc montre où vous touchez l'écran, pratique pour une démonstration projetée en classe.
Point de contrôle 3 : l'interrupteur Débogage USB est activé (et, sur Xiaomi, Installer via USB aussi).
  1. Étape 4 : installer le pilote USB (Windows uniquement)

    • Sous Windows, le PC a besoin d'un pilote pour dialoguer avec le téléphone en mode débogage. Sous macOS, rien à installer.
    • 4.1. Téléphones Google Pixel
      1. Dans Android Studio : More Actions → SDK Manager (ou Tools → SDK Manager), onglet SDK Tools.
      2. Cocher Google USB Driver et cliquer sur Apply.
      3. Si le téléphone n'est toujours pas reconnu : ouvrir le Gestionnaire de périphériques, clic droit sur le téléphone (souvent sous Autres périphériques avec un triangle jaune) → Mettre à jour le pilote → Parcourir mon poste de travail → dossier Sdk\extras\google\usb_driver.
    • 4.2. Autres marques
      • Installer le pilote USB du fabricant (par exemple Samsung Android USB Driver, disponible sur le site développeur de Samsung). La page Install OEM USB drivers d'Android Developers donne les liens par fabricant.
      • Bien souvent, Windows installe le bon pilote automatiquement au premier branchement : essayez d'abord l'étape 5, et ne revenez ici que si le téléphone n'est pas détecté.
    • 4.3. Linux (Ubuntu)
      • Ajouter votre utilisateur au groupe plugdev et installer les règles udev, puis se déconnecter et se reconnecter :
sudo usermod -aG plugdev $LOGNAME
sudo apt install android-sdk-platform-tools-common
Point de contrôle 4 : téléphone branché, le Gestionnaire de périphériques Windows ne montre plus de triangle jaune, mais une entrée du type Android Composite ADB Interface.
  1. Étape 5 : connecter le téléphone et autoriser l'ordinateur

    • 5.1. Brancher et autoriser
      1. Déverrouiller le téléphone et le brancher au PC.
      2. Si une notification « Recharge de cet appareil via USB » apparaît, la toucher et choisir Transfert de fichiers (certains téléphones ne sont détectés qu'avec ce mode).
      3. Une fenêtre « Autoriser le débogage USB ? » s'affiche avec l'empreinte de la clé RSA de l'ordinateur. Cocher Toujours autoriser sur cet ordinateur, puis toucher Autoriser.
    • 5.2. Vérifier la connexion
# Liste des appareils vus par ADB
adb devices
# Liste des appareils vus par Flutter (téléphone, émulateurs, Windows, Chrome...)
flutter devices
  • La colonne de droite de adb devices indique l'état du téléphone :
État affiché Signification Que faire
device Le téléphone est connecté et autorisé Rien : passez à l'étape 6.
unauthorized L'ordinateur n'a pas été autorisé Déverrouiller le téléphone et accepter la fenêtre RSA. Si elle n'apparaît pas : débrancher, toucher Révoquer les autorisations de débogage USB dans les options pour les développeurs, puis rebrancher.
offline ADB ne communique plus avec le téléphone Débrancher, exécuter adb kill-server puis adb start-server, rebrancher.
Liste vide Téléphone non détecté Vérifier le câble (étape 1.2), le débogage USB (étape 3) et le pilote (étape 4).
Point de contrôle 5 : adb devices affiche une ligne se terminant par device, et flutter devices liste votre téléphone, par exemple SM A546B (mobile) • R58W30XXXXX • android-arm64 • Android 15 (API 35).
  1. Étape 6 : exécuter l'application sur le téléphone

    • Méthode A : depuis VS Code (conseillée)
      1. Ouvrir votre projet Flutter dans VS Code (ou en créer un : flutter create test_telephone).
      2. Cliquer sur le nom de l'appareil dans la barre d'état, en bas à droite, ou ouvrir la palette de commandes (Ctrl + Maj + P) et taper Flutter: Select Device.
      3. Choisir votre téléphone dans la liste.
      4. Appuyer sur F5 (Run → Start Debugging).
    • Méthode B : depuis le terminal
# Un seul appareil connecté : Flutter le choisit automatiquement
flutter run
# Plusieurs appareils (téléphone + émulateur...) : préciser l'identifiant
flutter devices
flutter run -d R58W30XXXXX
  • Le premier lancement compile le projet avec Gradle et installe l'application : comptez plusieurs minutes. L'icône de l'application reste ensuite sur le téléphone, même après avoir débranché le câble.
  • Le téléphone peut demander l'autorisation d'installer l'application : acceptez (sur Xiaomi, une fenêtre d'avertissement de quelques secondes s'affiche, puis le bouton Installer devient actif).
  • Recharger l'application pendant le développement
Action Dans VS Code Dans le terminal (flutter run) Effet
Hot reload Enregistrer le fichier (Ctrl + S) ou icône éclair r Applique le changement sur le téléphone en gardant l'état.
Hot restart Ctrl + Maj + F5 R Redémarre l'application et remet l'état à zéro.
Arrêter Maj + F5 q Arrête la session de débogage (l'application reste installée).
Point de contrôle 6 : l'application s'ouvre sur le téléphone. Modifiez un texte dans lib/main.dart et enregistrez : le changement apparaît sur le téléphone en moins d'une seconde.
  1. Étape 7 (facultative) : travailler sans câble avec le débogage sans fil

    • À partir d'Android 11, le téléphone peut être connecté en Wi-Fi. Conditions : le téléphone et le PC doivent être sur le même réseau Wi-Fi, et les outils Android (Platform-Tools) doivent être à jour.
    • 7.1. Activer le débogage sans fil
      1. Dans Options pour les développeurs, activer Débogage sans fil et accepter le réseau actuel (cocher Toujours autoriser sur ce réseau).
      2. Toucher le texte Débogage sans fil (pas l'interrupteur) pour ouvrir son écran : il affiche l'adresse IP et le port du téléphone, par exemple 192.168.1.25:41235.
    • 7.2. Associer le PC (une seule fois)
      1. Toucher Associer l'appareil avec un code d'association. Le téléphone affiche un code à 6 chiffres et une adresse d'association avec un autre port, par exemple 192.168.1.25:37099.
      2. Sur le PC, exécuter les commandes ci-dessous en remplaçant les adresses par celles affichées sur votre téléphone.
# 1. Association : adresse et port de la fenêtre « code d'association », puis le code à 6 chiffres
adb pair 192.168.1.25:37099
Enter pairing code: 482913
# 2. Connexion : adresse et port affichés sur l'écran « Débogage sans fil »
adb connect 192.168.1.25:41235
# 3. Vérification
flutter devices
  • Le téléphone apparaît alors dans VS Code comme avec le câble : vous pouvez lancer l'application avec F5.
  • Avec Android Studio, vous pouvez aussi utiliser Pair Devices Using Wi-Fi dans la liste des appareils et scanner un QR code avec le téléphone.
  • Les fois suivantes, l'association est mémorisée : il suffit d'activer le débogage sans fil et d'exécuter adb connect avec le port affiché, qui change à chaque activation.
Réseaux d'établissement : de nombreux réseaux Wi-Fi publics ou d'école empêchent les appareils de communiquer entre eux (isolation des clients). Si adb pair échoue alors que tout est correct, utilisez le câble USB, ou partagez la connexion du téléphone vers le PC (point d'accès) pour qu'ils soient sur le même réseau.
Point de contrôle 7 : câble débranché, flutter devices liste toujours le téléphone, avec une adresse IP comme identifiant.
  1. Les modes d'exécution et l'installation d'un APK

    • Debug, profile et release
      • Pendant le développement, Flutter compile en mode debug: il permet le hot reload et les points d'arrêt, mais l'application est plus lente et affiche le bandeau DEBUG en haut à droite. C'est normal : ne jugez pas les performances dans ce mode.
Mode Commande Usage
Debug flutter run Développer : hot reload, points d'arrêt, bandeau DEBUG.
Profile flutter run --profile Mesurer les performances avec les DevTools (téléphone réel uniquement).
Release flutter run --release Voir l'application rapide et sans bandeau, comme l'utilisateur final. Pas de hot reload.
  • Installer l'application sans ordinateur : l'APK
    • Pour faire tester l'application par une autre personne, on génère un fichier APK:
# Générer l'APK de production
flutter build apk --release
# Fichier produit : build/app/outputs/flutter-apk/app-release.apk
# L'installer sur le téléphone branché
adb install -r build/app/outputs/flutter-apk/app-release.apk
  • Vous pouvez aussi copier l'APK sur le téléphone (câble, Google Drive…) et l'ouvrir : Android demandera d'autoriser l'installation depuis cette source (applications inconnues). La leçon Créer un fichier APK à partir de votre application Flutter détaille la signature et la publication.
  • Lire les messages de l'application (logs)

    • Les print() et debugPrint() de votre code s'affichent dans l'onglet Debug Console de VS Code pendant une session lancée avec F5.
    • Sans session de débogage, vous pouvez suivre les messages depuis le terminal :
    flutter logs                  # messages Flutter de l'appareil connecté
    adb logcat -s flutter         # même chose, directement avec ADB
    adb logcat *:E                # toutes les erreurs du téléphone (utile en cas de plantage)
    • Pour désinstaller rapidement l'application de test : adb uninstall com.example.test_telephone (le nom du paquet se trouve dans android/app/build.gradle.kts, ligne applicationId).
  • Résolution des problèmes courants

  • Symptôme Cause probable Solution
    Le téléphone charge mais n'apparaît nulle part Câble de charge uniquement, ou port USB défectueux Changer de câble et de port, éviter les hubs (étape 1.2).
    adb devices affiche unauthorized Fenêtre RSA non acceptée Déverrouiller le téléphone et autoriser ; sinon Révoquer les autorisations de débogage USB et rebrancher.
    Triangle jaune dans le Gestionnaire de périphériques Pilote USB absent Installer le pilote du fabricant ou le Google USB Driver (étape 4).
    Le téléphone est vu par adb mais pas par VS Code VS Code n'a pas actualisé la liste Exécuter flutter devices, puis rouvrir la liste des appareils ou redémarrer VS Code.
    INSTALL_FAILED_USER_RESTRICTED (Xiaomi) Installer via USB désactivé Activer Installer via USB (étape 3) et accepter la fenêtre d'installation sur le téléphone.
    INSTALL_FAILED_UPDATE_INCOMPATIBLE Une version de l'application signée différemment est déjà installée Désinstaller l'application du téléphone (ou adb uninstall <paquet>), puis relancer.
    INSTALL_FAILED_INSUFFICIENT_STORAGE Mémoire du téléphone pleine Libérer de l'espace sur le téléphone.
    Erreur indiquant que la version d'Android du téléphone est trop ancienne (minSdk) Le téléphone est plus ancien que le minimum requis par le projet Utiliser un téléphone plus récent ou l'émulateur.
    Samsung : le débogage USB est activé mais rien ne se passe Blocage automatique actif Désactiver Blocage automatique dans Sécurité et confidentialité (étape 3).
    La connexion s'interrompt pendant flutter run Mise en veille, câble qui bouge, économie d'énergie USB Activer Rester activé, ne pas bouger le câble, relancer avec adb kill-server puis adb start-server.
    adb pair échoue en Wi-Fi Réseaux différents, isolation des clients, mauvais port Vérifier le réseau, utiliser le port de la fenêtre d'association (pas celui de la connexion), ou repasser en USB.
    1. Bonnes pratiques et sécurité

      • Le débogage USB donne à l'ordinateur autorisé un accès très large au téléphone (installation d'applications, lecture de données). En conséquence :
        • n'acceptez la fenêtre « Autoriser le débogage USB ? » que sur votre propre ordinateur ou le poste de la salle de cours ;
        • ne cochez jamais Toujours autoriser sur un ordinateur public ;
        • à la fin du cours, touchez Révoquer les autorisations de débogage USB si vous avez utilisé un poste partagé ;
        • désactivez le Débogage USB et le Débogage sans fil quand vous ne développez pas, surtout avant de brancher le téléphone sur une borne de recharge publique.
      • Certaines applications bancaires refusent de s'ouvrir quand les options pour les développeurs sont actives : désactivez l'interrupteur général des options pour les développeurs si c'est le cas.
    2. Activité pratique : votre application sur votre téléphone

      • Objectif : valider toute la chaîne, du téléphone jusqu'à l'APK final.
      • Consignes :
        1. Relever la marque, le modèle et la version d'Android de votre téléphone.
        2. Activer les options pour les développeurs et le débogage USB, puis noter le chemin exact suivi sur votre modèle.
        3. Brancher le téléphone et relever la sortie de adb devices et de flutter devices.
        4. Créer le projet test_telephone, le lancer sur le téléphone avec F5, puis modifier la couleur du thème et constater le hot reload.
        5. Si votre téléphone est sous Android 11 ou plus, refaire le lancement en débogage sans fil, câble débranché.
        6. Lancer l'application avec flutter run --release: quelles différences observez-vous avec le mode debug ?
        7. Générer l'APK avec flutter build apk --release, l'installer avec adb install et relever la taille du fichier.
        8. Rendre un court compte rendu avec vos réponses, les commandes utilisées et une capture d'écran de l'application sur le téléphone.