Allez directement au contenu principal

Terminal de l'émulateur Android : La guide pratique complète

Maîtrisez le terminal de l'émulateur Android avec adb shell, commandes de console, redirection de ports et conseils de dépannage pour Windows, macOS et Linux en 2026.

Terminal de l'émulateur Android : La guide pratique complète

Votre émulateur est ouvert, l'application est bloquée sur un écran noir, et les contrôles graphiques ne vous aident pas. Ou peut-être vous trouvez-vous face à un job CI qui n'a pas d'affichage du tout, et la seule chose qui reste est une invite de terminal et un appareil virtuel qui doit démarrer, accepter des commandes et se comporter de la même manière à chaque exécution. C'est là où le terminal de l'émulateur Android cesse d'être un avantage et devient le plan de contrôle dont vous avez besoin.

Le changement important est simple, le terminal n'est pas juste une façon différente de cliquer sur les mêmes boutons. L'outil d'émulation de Google vous donne des couches séparées pour la lancement, le travail de shell et le contrôle de console, et chaque couche résout une classe différente de problème. Si vous les traitez comme une seule chose, les scripts deviennent instables, les anciens drapeaux continuent de s'introduire dans votre flux de travail, et CI se brise de manière qui semble aléatoire mais n'est pas.

Tableau de Contenu

Pourquoi vous avez besoin du terminal de l'émulateur Android

Un GUI figé est le cas évident. L'émulateur est toujours ouvert, mais vous ne pouvez pas y faire confiance, vous ne pouvez pas cliquer dessus, et ce flux de travail ne s'adapte pas à un serveur de build. Le terminal gère la partie que la fenêtre ne pouvait jamais faire, la répétabilité. Les documents de l'émulateur de Google décrivent la ligne de commande et la console comme des outils pour l'automatisation et le contrôl’à distance, avec une syntaxe de lancement comme emulator -avd avd_name ou emulator @avd_nameet la liste complète des options disponibles à travers emulator -help Référence de commande de l'émulateur Android.

Pourquoi les équipes standardisent-elles sur le contrôle terminal

La première fois que cela compte est généralement sans gloire. Un script de test de qualité nécessite un état de périphérique propre, un développeur a besoin du même AVD pour démarrer sous Linux et macOS, ou un exécuteur de CI doit activer une cible de test sans que personne regarde une fenêtre. À ce stade, l'émulateur cesse de se comporter comme une application de bureau et commence à se comporter comme de l'infrastructure.

Règle pratique : si une tâche doit être répétée, enregistrée ou récupérée après une erreur, utilisez la voie terminal en premier.

Google place également l'émulateur à côté adb dans l'ensemble officiel des outils de ligne de commande, ce qui compte car l'automatisation Android est une pile d'interfaces, pas une seule interface qui prétend faire tout Outils Android adb et émulateur. Utilisez adb pour l'inspection de périphérique et l'accès à la shell, puis utilisez le console de l'émulateur pour le contrôle de cycle de vie et les commandes spécifiques à l'émulateur. Mélanger ces rôles est comment les scripts deviennent fragiles.

The autres erreurs courantes à abandonner sont celles selon lesquelles le terminal de l'émulateur est juste un wrapper autour de l'interface graphique. Ce n'est pas le cas. Le console est authentifiée, liée aux ports localhost, et prend en charge des commandes comme avd start, avd stop, avd status, ping, et rotate Référence du console Android Emulateur . C'est pourquoi il se comporte comme un plan de contrôle de production, et non comme un environnement de débutant.

Pour les workflows hybrides et Capacitor , la même discipline compte avant d'installer ou de déboguer quoi que ce soit. Voir Configuration Android pour les applications Capacitor pour la partie de configuration qui se trouve généralement derrière la session de l'émulateur.

Lancement des émulateurs depuis la ligne de commande

Le premier commandement qui compte est celui qui vous montre ce qui est déjà disponible. Exécutez emulator -list-avdspick l'AVD que vous souhaitez, puis lancez-l’avec emulator -avd <name> ou emulator @<name>Si le chemin vers le binaire n'est pas dans votre shell PATH, le trouvez à l'intérieur du répertoire de l'émulateur Android SDK sur Windows, macOS ou Linux, puis exécutez-le directement à partir de là.

A un développeur tapant des commandes CLI sur un écran d'ordinateur portable tout en travaillant à un bureau en bois.

Les drapeaux de lancement qui comptent encore

Une démarrage propre est la différence entre une exécution saine et une session de débogage qui dévore votre matinée. Dans le travail quotidien, les drapeaux de terminal utiles sont ceux qui rendent le comportement de démarrage prévisible, surtout pour les hôtes sans écran et les CI. -no-window est le chemin sans écran -no-snapshot oblige une état propre -no-audio et -no-boot-anim context -gpu swiftshader_indirect supprime le bruit inutile, et

That combination is the difference between “the emulator started” and “the emulator started in a way that a pipeline can trust.” The launch command becomes part of your test contract, not just a convenience wrapper. If you’re bringing up a device for a Capacitor or hybrid app workflow, the same launch discipline applies before any debugging or install step begins. A practical Android setup guide for Capacitor developers is Cette combinaison est la différence entre « l'emulateur s'est démarré » et « l'emulateur s'est démarré d'une manière que la chaîne de traitement peut faire confiance ». La commande de lancement devient partie de votre contrat de test, et non juste un wrapper de commodité. Si vous montez un appareil pour un flux de travail d'application __CAPGO_KEEP_0__ ou hybride, la même discipline de lancement s'applique avant que n'importe quel pas de débogage ou d'installation ne commence. Un guide pratique de configuration d'Android pour les développeurs __CAPGO_KEEP_1__ est.

vaut la peine de le garder à côté de vos commandes d'emulateur

Commencez par la liste des appareils, et non par la mémoire

La bonne habitude : gardez une commande de lancement propre pour le travail local et une commande plus stricte pour la CI. N'obligez pas le pipeline à hériter de chaque drapeau de commodité de votre ordinateur portable.

Cette séparation maintient le débogage local amical sans rendre l'automatisation négligente. Une fois la mise en route stable, le reste du flux de terminal a enfin quelque chose de fiable à quoi s'attacher.

Conduire l'émulateur avec adb Shell

Une fois l'émulateur en cours d'exécution : adb devient la surface de commande que vous utilisez le plus souvent. adb devices montre ce qui est attaché, et adb -s emulator-5554 shell vous permet de cibler une instance spécifique sur un port spécifique. Cela compte sur un ordinateur avec plusieurs appareils virtuels, car les commandes génériques peuvent facilement cibler la mauvaise cible. Le numéro de série maintient votre automatisation pointée sur l'émulateur que vous aviez l'intention d'utiliser.

Un diagramme infographique à trois étapes montrant le flux de commande de l'interface de commande adb pour la gestion et le développement de l'émulateur Android.

Connectez-vous, puis décidiez-vous si vous avez besoin d'une interface de commande

La séparation entre des commandes uniques et une interface de commande interactive compte plus qu'elle ne le suggère au premier abord. Si vous n'avez besoin que d'inspecter une configuration ou de collecter un fichier, une commande unique est suffisante. adb shell La commande est plus propre. Si vous suivez l'activité de l'application étape par étape, sautez dans une invite interactive et restez-y jusqu'à ce que le travail soit terminé.

adb push et adb pull gérez le mouvement des fichiers, adb install -r est le chemin pratique pour des tests locaux répétitifs, et adb exec-out screencap vous donne une capture d'écran fiable. La prise de vue d'écran par adb shell screenrecord est tout aussi directe lorsque vous avez besoin d'un artefact rapide d'une exécution échouée. Pour les flux de travail d'installation de packages et de chargement côté local, cette guide d'installation est un compagnon utile.

Utilisez adb pour le travail d'applications, pas le travail de cycle de vie de l'émulateur

adb est le bon niveau pour les commandes qui s'exécutent à l'intérieur d'Android lui-même. Si vous avez un script stocké dans le stockage partagé, adb shell sh /sdcard/run.sh correspond bien aux empilements d'automatisation réels. C'est également le niveau où run-as <package> devient utile pour les builds de débogage, puisqu'il vous donne des fichiers privés de l'application sans vous forcer à avoir root.

La limite est claire. adb ne remplace pas la console de l'émulateur, et ce n'est pas l'outil approprié pour un contrôle plus approfondi du cycle de vie de l'émulateur ou des actions console uniquement. Utilisez-le pour le transfert de fichiers, la gestion de packages, l'exécution de commandes et la reconnaissance rapide, puis arrêtez-vous là.

Règle pratique : si l'action appartient à Android, commencez par adb shellSi l'action appartient à l'émulateur lui-même, utilisez la console.

Pour les équipes travaillant sur plusieurs couches de plugins, le comportement spécifique à la plateforme et les questions relatives à l'état du dispositif, un kit de débogage plus large aide à garder les travaux de terminal de l'émulateur loin de la spéculation. Cette ressource de débogage s'adapte bien aux côtés du workflow adb.


Utiliser la console de l'émulateur au-delà de adb

La console de l'émulateur est un plan de contrôle distinct, et cette distinction compte. Google la documente comme étant en écoute uniquement sur les ports localhost 5554 à 5585, avec une authentification requise avant que les commandes soient acceptées, et avec des commandes comme avd start, avd stop, avd status, ping, et rotate disponible dès que vous êtes connecté. Cela en fait l'outil approprié pour les actions au niveau de l'emulateur qui adb ne peuvent pas exprimer clairement.

Une infographie intitulée Éléments essentiels de la console de l'emulateur montrant quatre étapes numérotées pour contrôler un émulateur Android via terminal.

Authentifier avant d'envoyer quoi que ce soit d'utile

La voie documentée par Google consiste à se connecter avec telnet localhost console-port, attendre OK, puis envoyer auth auth_token en utilisant le jeton stocké dans ~/.emulator_console_auth_tokenSi ce fichier de jeton n'existe pas, la connexion telnet le crée avec un jeton aléatoire. Dans les environnements CI éphémères, cela signifie que vous devez soit conserver intentionnellement le fichier, soit le réinitialiser délibérément, car les échecs d'authentification inattendus sont presque toujours des erreurs de gestion d'état.

La console est également découverte. help, help command, et help-verbose ont une raison d'être, et ils économisent du temps lorsque vous vérifiez les commandes que l'emulateur accepte. C'est une meilleure habitude que de deviner et d'espérer adb peut le couvrir plus tard.

Savoir ce qui appartient à la console

Les commandes de la console sont pour le cycle de vie et l'état côté-emulateur. avd start et avd stop ce sont des exemples évidents, mais rotate et ping sont tout aussi utiles lorsque vous vérifiez la responsivité ou que vous simulez des changements de dispositif. L'emulateur fonctionne comme une infrastructure dans ce contexte, car vous pouvez scripter la disponibilité et la fermeture dans le même endroit où vous scriptez le démarrage.

L'erreur commune est de mélanger la console de l'emulateur avec la console Android. Ils ressemblent à des étrangers de loin, mais les protocoles sont différents. La console est authentifiée et liée au port, tandis que l'accès à la console est généralement géré à travers adb shell, donc les scripts nécessitent des temps d'attente différents et des traitements de faillite différents. Pour la fiabilité du terminal dans les workflows spécifiques au plateau, cette ressource de débogage se marie bien avec les vérifications de disponibilité de la console.

Bon portail d'automatisation : ne pas lancer les tests lors du lancement du processus seul. Lancer-les uniquement après que la console ait établi un échange de données et que le dispositif virtuel ait signalé l'état que vous attendez.

Cette décision supprime un grand nombre de « échecs de démarrage mais pas prêt » avant qu'ils ne frappent votre ensemble de tests.

Applications Terminal et Accès Root à l'intérieur de l'émulateur

Parfois, le travail appartient à l'intérieur du VM, et non sur le hôte. Dans ce cas, l'installation d'une application terminal réelle à l'intérieur de l'émulateur est la plus simple, et Termux est la choix standard. Cela vous donne un environnement de shell sur appareil qui est beaucoup plus proche d'un workflow Unix réel que de cliquer autour des écrans de paramètres.

Root lorsque l'image le permet

Accès root est dépendant de l'image, et non magique. Sur les images système qui le permettent, et adb root context : Page/zone : Site web de marketing Capgo. Rôle : Étiquette de navigation ou élément UI court. Vu dans : page trust.astro. Clé de message `et` (Et). adb shell su peut vous emmener où vous le souhaitez, mais les images Google Play par défaut ne sont généralement pas le lieu où vous pouvez attendre un confortable travail root. Les AVD personnalisés sont généralement plus flexibles lorsque vous avez besoin d'un accès plus profond.

BusyBox est toujours utile à ce niveau car il remplit les lacunes dans l'ensemble de commandes que vous auriez sinon manqué. Si vous effectuez une inspection de fichiers, une scripting côté appareil ou des diagnostics rapides à l'intérieur de l'émulateur, un kit de outils Unix plus complet rend la machine beaucoup moins contrainte. Les vérifications d'accès root liées aux projets Capacitor sont discutées dans ce guide du plugin.

Utilisez l'accès privé de l'application avant de monter d'échelon

Non tous les problèmes nécessitent un accès root. Pour les builds de débogage, adb shell run-as <package> est souvent suffisant pour inspecter les répertoires privés de l'application sans élargir le rayon d'impact. C'est une bonne habitude plus propre car elle maintient votre flux de travail aligné avec l'outil le moins puissant qui fait encore l'affaire.

Si vous avez besoin d'écritures système, la partition système doit être écrivable, et c'est une classe de configuration différente entièrement. Pour un travail d'émulateur quotidien, le côté hôte adb shell reste le point de départ le mieux adapté, et les terminaux sur appareil sont traités comme une couche spécialisée pour les cas où l'accès hôte n'est pas suffisant. La règle du pouce est simple : utilisez l'autorité la plus petite qui peut toujours reproduire le bug.

Réseau, redirection de port et raccourcis clavier

Un flux de travail terminalisé devient réel dès que le trafic doit traverser la limite du hôte. adb reverse tcp:8080 tcp:8080 est la manière la plus propre de pointer un émulateur vers un serveur de développement local exécuté sur votre machine, surtout lorsque l'application s'attend à appeler les services hôte. adb forward gestionne le cas inverse, où le trafic du dispositif doit atteindre un écouteur sur le hôte.

Choisissez la bonne direction avant de déboguer la mauvaise couche

Un grand temps perdu provient de considérer chaque problème de réseau comme un « problème d'émulateur ». Dans la pratique, la direction du port est souvent incorrecte. adb reverse permet à l'émulateur de rejoindre un service hôte, tandis que adb forward envoie le trafic du dispositif vers un port hôte, de sorte que le chemin de la connexion décide de la commande à appliquer.

Si la connectivité semble toujours défectueuse, vérifiez la table de routage à l'intérieur de la machine virtuelle avec adb shell ip route et inspecter les interfaces avec ifconfig. Lorsque les routes semblent normales mais que le service refuse toujours les connexions, le défaut se situe généralement sur l'écouteur hôte ou dans la configuration de redirection, et non dans Android lui-même. Pour une vision plus large de la façon dont les retards de trafic local façonnent ce que vous voyez lors de la débogage, cette explication sur la latence de réseau est une lecture utile à consulter en parallèle.

Le contrôle de la touche clavier fait partie de l'histoire du terminal

La carte de correspondance clavier de Google transforme l'emulateur en un cible de bureau beaucoup plus performante. F2 ouvre le menu, ESC agit comme Annuler, F7 gère le redémarrage, et Alt-Entrée active le plein écran. La même carte de correspondance couvre également les contrôles de la caméra, du volume et de l'orientation, de sorte que beaucoup de comportement de l'appareil reste sur la touche clavier au lieu d'être enterré dans la barre d'outils.

Cela compte sur les ordinateurs portables et les écrans grands.

Une fois que la surface de contrôle vit sur la touche clavier, l'emulateur commence à se comporter comme un outil que vous pouvez travailler toute la journée, et non comme une fenêtre que vous faites glisser avec la souris. Drapeau obsolète Cela faisait autrefois
-audio-in Remplacement moderne Activer le contrôle d'entrée audio
-audio-out Supprimez-le des scripts de lancement, il ne fonctionne plus dans les documents actuels Activer le contrôle de sortie audio
-enable-kvm Supprimez-le des scripts de lancement, il ne fonctionne plus dans les documents actuels Demander un chemin de virtualisation : 
-gps Comportement GPS contrôlé Supprimez-le des scripts de lancement, il ne fonctionne plus dans les documents actuels
-skin Définissez la peau du dispositif Supprimez-le des scripts de lancement, il ne fonctionne plus dans les documents actuels
-skindir Pointe vers un répertoire de peau Supprimez-le des scripts de lancement, il ne fonctionne plus dans les documents actuels
-useaudio Activez l'utilisation audio Supprimez-le des scripts de lancement, il ne fonctionne plus dans les documents actuels

Google classe ces drapeaux comme ne fonctionnant plus dans les documents actuels de l'émulateur, donc les anciens snippets tendent à pourrir rapidement lorsqu'ils sont copiés dans un script frais Notes de ligne de commande de l'émulateur actuelSi vous les avez toujours dans un script de shell partagé, supprimez-les et testez la lancement à nouveau.

Diagnostic et flux de travail Terminal 2026

Ecran noir, offline, unauthorized, KO: missing authLes conflits de port et les snapshots obsolètes sont le cluster de failure habituel. Les corrections sont directes lorsque vous mappez le symptôme à la cause. Un démarrage bloqué pointe souvent vers l'état du snapshot, tandis que les échecs d'authentification de la console signifient généralement que le fichier de jeton ou la main de poche est hors de synchronisation.

Capture d'écran depuis https://capgo.app

Les corrections d'une ligne pour les failures qui gaspillent le plus de temps

Si l'emulateur ne parvient jamais à passer d'un écran noir, redémarrez avec un chemin de lancement propre et abandonnez l'état obsolète. adb ou offline Si unauthorizedapparaît KO: missing authou

Si

le

console indique que le token est expiré, reconnectez le périphérique et vérifiez que l'hôte et l'instance de l'emulateur correspondent toujours. Si la console retourne un message d'erreur, vérifiez d'abord le fichier de jeton et le chemin de main de poche, car la console ne prendra pas en charge les commandes avant que ce pas soit correct. Si vous rencontrez des conflits de port, c'est généralement un signe que l'emulateur précédent n'a pas quitté proprement, il faut donc libérer le port occupé avant la prochaine exécution. Si le démarrage ne se termine jamais, supposez que le drift des snapshots est la cause jusqu'à preuve du contraire et forcez un démarrage déterministe. Cette habitude, plus que tout flag individuel, est ce qui rend le flux de terminal fiable en 2026. Traitez le flux comme un système, et non comme une séquence de clics. Le modèle durable est un démarrage prévisible, un accès à la console authentifié, adb shell pour le travail au niveau de l'application, et un chemin de reversion lorsque les états dérivent. C'est la discipline derrière l'itération mobile rapide, qu'il s'agisse de tester une application native ou de livrer des mises à jour à une application Capacitor via un pipeline de lancement contrôlé.

La confiance est le gain. Une fois que le terminal de l'émulateur est connecté en tant que plan de contrôle, vous arrêtez de vous demander si la fenêtre est réactive et vous commencez à vous demander si l'état du dispositif est exactement ce que votre test attend.


Si vous construisez des applications mobiles qui nécessitent des chemins de lancement et de récupération fiables aux côtés de la testification pilotée par l'émulateur, Capgo donne aux équipes un moyen rapide de livrer des correctifs JavaScript, CSS, de configuration et d'actifs sans attendre la revue de l'application. Visitez Capgo pour voir comment les mises à jour en direct, la protection de reversion et les contrôles de lancement s'intègrent dans un flux de travail où la testification Android pilotée par le terminal compte.

Mises à jour en temps réel pour les applications Capacitor

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Lorsqu'un bug de couche web est actif, expédiez la correction par __CAPGO_KEEP_0__ au lieu de attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans le chemin de revue normal.

Support humain de Martin

Context : Page/zone : Copie de marketing du site web. Rôle : Phrase de copie du site web. Vu dans : composant HumanSupport.astro, composant pricing/Plans.astro. Message clé `home_hero_human_support` (Support humain de l'accueil).

Capgo vous offre les meilleures informations dont vous avez besoin pour créer une application mobile véritablement professionnelle.