Chaque appareil virtuel en cours d'exécution fournit une console qui vous permet d'interroger et de contrôler l'environnement de l'appareil émulé. Par exemple, vous pouvez utiliser la console pour gérer la redirection de port, les caractéristiques réseau et les événements téléphoniques lorsque votre application est exécutée sur l'émulateur.
Les commandes suivantes nécessitent qu'un émulateur soit déjà en cours d'exécution. Pour en savoir plus sur l'exécution d'un émulateur, consultez Exécuter des applications sur Android Emulator et Lancer l'émulateur à partir de la ligne de commande.
Démarrer et arrêter une session de console
Pour accéder à la console et entrer des commandes à partir d'une fenêtre de terminal, utilisez telnet pour vous connecter au port de la console et fournir votre jeton d'authentification. Chaque fois que la console affiche OK, elle est prête à accepter les commandes. Elle n'est pas associée à une invite type.
Pour vous connecter à la console d'un appareil virtuel en cours d'exécution :
Ouvrez une fenêtre de terminal et entrez la commande suivante :
telnet localhost console-portLe titre de la fenêtre de l'émulateur indique le numéro de port de la console lors d'une exécution dans une fenêtre distincte, mais pas dans une fenêtre d'outil. Par exemple, le titre de la fenêtre d'un émulateur utilisant le port 5554 de la console peut être Pixel8_API_34:5554. En outre, la commande
adb devicesaffiche la liste des appareils virtuels en cours d'exécution et les numéros de port de leur console. Pour en savoir plus, consultez Requête pour des appareils.Remarque : L'émulateur écoute les connexions sur les ports 5554 à 5585 et n'accepte que les connexions de localhost.
Une fois que la console affiche OK, saisissez la commande
auth auth_token.Pour que vous puissiez entrer des commandes de console, la console de l'émulateur exige une authentification.
auth_tokendoit correspondre au contenu du fichier.emulator_console_auth_tokendans votre répertoire d'accueil.Si ce fichier n'existe pas, la commande
telnet localhost console-portcrée le fichier, qui contient un jeton d'authentification généré aléatoirement. Pour désactiver l'authentification, supprimez le jeton du fichier.emulator_console_auth_tokenou créez un fichier vide s'il n'existe pas.Une fois connecté à la console, entrez des commandes de console.
Entrez
help,help commandouhelp-verbosepour afficher la liste des commandes de console et en savoir plus sur des commandes spécifiques.Pour quitter la session de console, entrez
quitouexit.
Voici un exemple de session :
$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
Android console command help:
help|h|? Prints a list of commands
help-verbose Prints a list of commands with descriptions
ping Checks if the emulator is alive
automation Manages emulator automation
event Simulates hardware events
geo Geo-location commands
gsm GSM related commands
cdma CDMA related commands
crash Crashes the emulator instance
crash-on-exit Simulates crash on exit for the emulator instance
kill Terminates the emulator instance
restart Restarts the emulator instance
network Manages network settings (ethernet and cellular only)
power Power related commands
quit|exit Quits control session
redir Manages port redirections
sms SMS related commands
avd Controls virtual device execution
qemu QEMU-specific commands
sensor Manages emulator sensors
physics Manages physical model
finger Manages emulator finger print
debug Controls the emulator debug output tags
rotate Rotates the screen clockwise by 90 degrees
screenrecord Records the emulator's display
fold Folds the device
unfold Unfolds the device
multidisplay Configures the multi-display
nodraw turn on/off NoDraw mode. (experimental)
resize-display resize the display resolution to the preset size
virtualscene-image customize virtualscene image for virtulscene camera
proxy manage network proxy server settings
phonenumber set phone number for the device
try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.
Commandes "fire and forget"
Si vous n'avez pas besoin que la session soit ouverte, utilisez le raccourci adb emu, qui exécute la commande et renvoie immédiatement le contrôle au shell appelant :
adb emu command commandParameter
L'invocation avec adb emu se connecte à l'émulateur disponible. Si vous exécutez plusieurs émulateurs en même temps, vous devez transmettre le numéro de série de l'émulateur spécifique que vous ciblez :
adb -s emulator-serial emu command commandParameter
Documentation de référence sur les commandes de l'émulateur
Les listes suivantes décrivent les commandes de la console de l'émulateur, ainsi que leurs paramètres et valeurs :
Commandes générales
avd {stop| start| status| name}Interroge, contrôle et gère l'appareil virtuel comme suit :- stop : arrête l'exécution de l'appareil.
- start : démarre l'exécution de l'appareil.
- status : interroge l'état de l'appareil virtuel, qui peut être en cours d'exécution ou arrêté.
- name : interroge le nom de l'appareil virtuel.
avd snapshot {list| save name| load name| delete name}Enregistre et restaure l'état de l'appareil dans des instantanés, comme suit :- list : affiche tous les instantanés enregistrés.
- save name : enregistre l'instantané sous le nom "name".
- load name : charge l'instantané nommé.
- delete name : supprime l'instantané nommé.
L'exemple suivant enregistre un instantané nommé
firstactivitysnapshot:avd snapshot save firstactivitysnapshotfold : plie l'appareil pour afficher sa configuration d'écran réduite (s'il est pliable et actuellement déplié).
unfold : déplie l'appareil pour afficher sa configuration d'écran agrandie (s'il est pliable et actuellement plié).
kill : arrête l'appareil virtuel.
ping : vérifie si l'appareil virtuel est en cours d'exécution.
rotate : fait pivoter l'AVD dans le sens inverse des aiguilles d'une montre par incréments de 45 degrés.
Plantage de l'émulateur
crash : fait planter l'émulateur pendant l'exécution de l'application.
crash-on-exit : fait planter l'émulateur lorsque l'application se ferme.
Balises de débogage
debug tags ... : active ou désactive les messages de débogage dans des parties spécifiques de l'émulateur. Le paramètre "tags" doit être une valeur de la liste des balises de débogage qui s'affiche lorsque vous exécutez
emulator -help-debug-tags. Pour en savoir plus sur l'option-help-debug-tags, consultez le tableau des options couramment utilisées. L'exemple suivant active la balise radio :debug radio
Redirection de port
redir list : liste la redirection de port actuelle.
redir add protocol:host-port:guest-portAjoute une nouvelle redirection de port comme suit :- protocol : doit être tcp ou udp.
- host-port : numéro de port à ouvrir sur l'hôte.
- guest-port : numéro de port vers lequel acheminer les données sur l'émulateur.
redir del protocol:host-portSupprime une redirection de port.- protocol : doit être tcp ou udp.
- host-port : numéro de port à ouvrir sur l'hôte.
Emplacement géographique
Définit l'emplacement géographique signalé aux applications exécutées dans un émulateur en envoyant une position GPS à l'émulateur.
Vous pouvez exécuter l'une des commandes géographiques suivantes dès qu'un appareil virtuel est en cours d'exécution. L'émulateur définit l'emplacement que vous saisissez en créant un fournisseur de localisation fictif. Ce fournisseur répond aux écouteurs de localisation définis par les applications et fournit l'emplacement au LocationManager. Toute application peut interroger le gestionnaire de localisation pour obtenir la position GPS actuelle de l'appareil émulé en appelant LocationManager.getLastKnownLocation("gps").
geo fix longitude latitude [altitude] [satellites] [velocity] : envoie une position GPS simple à l'émulateur. Indiquez la longitude et la latitude en degrés décimaux. Saisissez un nombre compris entre 1 et 12 pour définir le nombre de satellites à utiliser pour déterminer l'emplacement, et indiquez l'altitude en mètres et la vitesse en nœuds.
geo nmea sentence : envoie une phrase NMEA 0183 à l'appareil émulé, comme s'il s'agissait d'un modem GPS émulé. Commencez la phrase par "$GP". Seules les phrases "$GPGGA" et "$GPRCM" sont actuellement prises en charge. L'exemple suivant est une phrase GPGGA (Global Positioning System Fix Data) qui récupère les données de temps, d'emplacement et de position d'un récepteur GPS :
geo nmea $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
Événements matériels factices
Le sous-système d'événements matériels de la console de l'émulateur vous permet de simuler pratiquement n'importe quelle interaction physique avec l'appareil. Cela inclut les boutons physiques, les gestes/le toucher sur l'écran, les sélecteurs rotatifs, les entrées du joystick et les commutateurs matériels.
event types : liste tous les types d'événements factices. Pour les événements associés à des codes, le nombre de codes est indiqué entre parenthèses sur la droite. Exemple de résultat :
event types event <type> can be an integer or one of the following aliases: EV_SYN EV_KEY (405 code aliases) EV_REL (2 code aliases) EV_ABS (27 code aliases) EV_MSC EV_SW (4 code aliases) EV_LED EV_SND EV_REP EV_FF EV_PWR EV_FF_STATUS EV_MAX OKevent send types [types ...] : envoie un ou plusieurs types d'événements factices.
type de codes d'événement : affiche la liste des codes d'événement pour le type d'événement factice spécifié.
event send type[:code]:[value] [...] : envoie un ou plusieurs événements factices avec des codes et des valeurs de code facultatifs.
EV_KEY : références des codes de touches
Le type d'événement EV_KEY permet de simuler l'appui sur un bouton et son relâchement. Les tableaux suivants divisent la longue liste des codes clés compatibles en catégories logiques. Pour chaque code de touche, l'envoi d'une valeur 1 simule une pression, tandis qu'une valeur 0 simule un relâchement. Une valeur de 2 représente la répétition d'une touche.
Sous-tableau A : touches système Android
| Code | Description |
|---|---|
KEY_HOME |
Déclencheur du bouton d'accueil |
KEY_BACK |
Déclencheur du bouton Retour |
KEY_MENU |
Bouton de menu (à développer) |
KEY_POWER |
Bouton Marche/Arrêt (appuyer/appuyer de manière prolongée) |
KEY_VOLUMEUP |
Déclencheur du bouton "Augmenter le volume" |
KEY_VOLUMEDOWN |
Déclencheur du bouton "Volume -" |
KEY_CAMERA |
Bouton physique de l'obturateur de l'appareil photo |
KEY_FOCUS |
Obturateur de mise au point automatique de l'appareil photo |
KEY_SEARCH |
Déclencheur du bouton de recherche |
KEY_SLEEP |
Déclencheur de la commande de mise en veille |
KEY_WAKEUP |
Déclencheur de la commande de réveil |
KEY_NOTIFICATION |
Ouvrir le volet des notifications |
KEY_MUTE |
Couper la sortie audio du système |
KEY_MICMUTE |
Couper le son du micro |
KEY_BRIGHTNESSDOWN |
Diminuer la luminosité de l'écran |
KEY_BRIGHTNESSUP |
Augmenter la luminosité de l'affichage |
KEY_PHONE |
Ouvrir l'application de téléphone par défaut |
KEY_SEND |
Envoyer un message ou passer un appel téléphonique |
KEY_HEADSETHOOK |
Crochet du casque (répondre/raccrocher) |
KEY_SCREEN |
Commande d'activation de l'économiseur d'écran |
KEY_CONFIG |
Menu système de configuration |
KEY_SWITCHVIDEOMODE |
Changer le mode vidéo du système |
KEY_KBDILLUMTOGGLE |
Activer ou désactiver le rétroéclairage du clavier |
Sous-tableau B : Commandes multimédias et de lecture
| Code | Description |
|---|---|
KEY_PLAYPAUSE |
Lecture/Pause |
KEY_PLAY |
Lancer la lecture d'un contenu multimédia |
KEY_PAUSECD |
Mettre en pause la lecture du CD |
KEY_STOPCD |
Arrêter la lecture du CD |
KEY_NEXTSONG |
Passer au titre suivant |
KEY_PREVIOUSSONG |
Passer au titre précédent |
KEY_REWIND |
Revenir en arrière dans la version active |
KEY_FASTFORWARD |
Avancer rapidement la piste active |
KEY_RECORD |
Commande de déclenchement de l'enregistrement |
KEY_SHUFFLE |
Activer/Désactiver la lecture aléatoire |
KEY_REPEAT |
Activer/Désactiver la lecture en boucle |
KEY_MEDIA |
Déclencheur de touche multimédia |
Sous-tableau C : Claviers de navigation et généraux
| Code | Description |
|---|---|
KEY_UP |
Direction "Haut" du pavé directionnel |
KEY_DOWN |
Flèche vers le bas du pavé directionnel |
KEY_LEFT |
Direction gauche du pavé directionnel |
KEY_RIGHT |
Direction droite du pavé directionnel |
KEY_PAGEUP |
Navigation vers le haut de la page |
KEY_PAGEDOWN |
Navigation vers le bas de la page |
KEY_INSERT |
Insérer un déclencheur de touche |
KEY_DELETE |
Supprimer le déclencheur de touche |
KEY_ENTER |
Déclencheur de touche Entrée |
KEY_ESC |
Déclencheur de la touche Échap |
KEY_TAB |
Déclencheur de la touche de tabulation |
KEY_SPACE |
Déclencheur de la barre d'espace |
KEY_BACKSPACE |
Déclencheur de la touche Retour arrière |
KEY_CLEAR |
Vider le tampon d'entrée |
KEY_CANCEL |
Annuler l'action en cours |
KEY_OK |
Confirmer/OK la sélection |
KEY_SELECT |
Sélectionner un déclencheur d'élément |
KEY_GOTO |
Accéder à un lieu désigné |
KEY_HELP |
Accéder à l'aide contextuelle |
Sous-tableau D : Caractères alphanumériques et symboles du pavé numérique
- Lettres standard de l'alphabet : de
KEY_AàKEY_Z(26 codes). - Touches du clavier numérique :
KEY_1àKEY_0(10 codes).
| Code | Symbole de caractère |
|---|---|
KEY_COMMA |
, |
KEY_DOT |
. |
KEY_SLASH |
/ |
KEY_SEMICOLON |
; |
KEY_APOSTROPHE |
' |
KEY_GRAVE |
\` |
KEY_MINUS |
- |
KEY_EQUAL |
= |
KEY_LEFTBRACE |
[ |
KEY_RIGHTBRACE |
] |
KEY_BACKSLASH |
\ |
KEY_KPASTERISK |
* (pavé numérique) |
KEY_KPPLUS |
+ (pavé numérique) |
KEY_KPMINUS |
- (pavé numérique) |
KEY_KPDOT |
. (pavé numérique) |
KEY_KPSLASH |
/ (pavé numérique) |
KEY_KPENTER |
Entrée (pavé numérique) |
KEY_KPEQUAL |
= (pavé numérique) |
KEY_KPCOMMA |
, (pavé numérique) |
KEY_KPJPCOMMA |
, (mise en page japonaise) |
KEY_KPLEFTPAREN |
( (pavé numérique) |
KEY_KPRIGHTPAREN |
) (pavé numérique) |
KEY_KPPLUSMINUS |
± (pavé numérique) |
Sous-tableau E : Touches de modification et de fonction
- Touches de fonction standard :
KEY_F1àKEY_F24(24 codes).
| Code | Description |
|---|---|
KEY_LEFTSHIFT |
Touche de modification Maj gauche |
KEY_RIGHTSHIFT |
Touche Maj de droite |
KEY_LEFTCTRL |
Modificateur de clavier "Ctrl gauche" |
KEY_RIGHTCTRL |
Touche de modification du clavier "Ctrl" de droite |
KEY_LEFTALT |
Touche de modification Alt gauche |
KEY_RIGHTALT |
Touche de modification Alt droite |
KEY_LEFTMETA |
Touche Méta/Commande gauche |
KEY_RIGHTMETA |
Touche Meta/Commande droite |
KEY_CAPSLOCK |
Activer/Désactiver le verrouillage des majuscules |
KEY_NUMLOCK |
Activation/désactivation de la touche Verr Num |
KEY_SCROLLLOCK |
Activer/Désactiver le verrouillage du défilement |
KEY_COMPOSE |
Assistant de caractères Compose |
KEY_FN |
Touche FN du clavier physique |
KEY_FN_ESC |
Combinaisons de touches de fonction |
KEY_FN_1 |
Raccourci de fonction spéciale 1 |
KEY_FN_2 |
Raccourci de la fonction spéciale 2 |
KEY_FN_D |
Raccourci de fonction spéciale D |
KEY_FN_E |
Raccourci de fonction spéciale E |
KEY_FN_F |
Raccourci de fonction spéciale F |
KEY_FN_S |
Raccourci de fonction spéciale S |
KEY_FN_B |
Raccourci de fonction spéciale B |
Sous-tableau F : Manettes de jeu et joysticks
| Code | Description |
|---|---|
BTN_A / BTN_B / BTN_C |
Boutons A/B/C de la manette |
BTN_X / BTN_Y / BTN_Z |
Boutons X/Y/Z de la face avant de la manette |
BTN_START |
Bouton du menu "Démarrer" de la manette de jeu |
BTN_SELECT |
Bouton de sélection de la manette de jeu |
BTN_MODE |
Bouton du mode Contrôleur |
BTN_TL/BTN_TR |
Gâchettes supérieures gauche / droite |
BTN_TL2/BTN_TR2 |
Gâchettes analogiques gauche / droite |
BTN_THUMBL/BTN_THUMBR |
Appui sur le joystick gauche / droit |
BTN_DPAD_UP |
Déclencheur "Pavé directionnel haut" de la manette de jeu |
BTN_DPAD_DOWN |
Déclencheur "Pavé directionnel bas" de la manette |
BTN_DPAD_LEFT |
Gâchette gauche du pavé directionnel de la manette de jeu |
BTN_DPAD_RIGHT |
Gâchette droite du pavé directionnel de la manette |
BTN_THUMB |
Déclencheur principal du joystick |
BTN_TOP/BTN_TOP2 |
Boutons supérieurs du joystick |
BTN_PINKIE |
Boutons du joystick |
De BTN_BASE à _BASE6 |
Boutons de la base de la plate-forme du joystick |
BTN_DEAD |
Indicateur de zone morte de la manette de jeu inactive |
BTN_TRIGGER |
Gâchette manuelle du joystick physique |
BTN_JOYSTICK |
Code d'entrée générique du joystick |
Sous-tableau G : Saisies à la souris, tactiles et au stylet
| Code | Description |
|---|---|
BTN_MOUSE |
Événement générique de pointeur de la souris |
BTN_LEFT |
Cliquer sur le bouton gauche de la souris |
BTN_RIGHT |
Cliquer sur le bouton droit de la souris |
BTN_MIDDLE |
Clic sur la molette centrale |
BTN_SIDE |
Déclencheur de touche latérale de navigation |
BTN_EXTRA |
Déclencheur de bouton de souris supplémentaire |
BTN_FORWARD |
Clic sur le bouton "Suivant" du navigateur |
BTN_BACK |
Clic sur le bouton de navigation "Retour" du navigateur |
BTN_TASK |
Touche de l'outil de sélection des tâches système |
BTN_TOUCH |
Contact physique avec l'écran détecté |
BTN_STYLUS |
Proximité du stylet actif |
BTN_STYLUS2 |
Bouton secondaire sur le stylet |
BTN_TOOL_PEN |
Identifiant de l'outil Stylet |
BTN_TOOL_RUBBER |
Identifiant de l'outil gomme du stylet |
BTN_TOOL_BRUSH |
Identifiant de l'outil Pinceau de Painter |
BTN_TOOL_PENCIL |
Identifiant de l'outil Crayon |
BTN_TOOL_AIRBRUSH |
Identifiant de l'outil de peinture aérographe |
BTN_TOOL_FINGER |
Contact du doigt avec l'écran tactile |
BTN_TOOL_MOUSE |
Identifiant de l'outil de souris externe |
BTN_TOOL_LENS |
Outil de loupe optique |
BTN_TOOL_DOUBLETAP |
Indicateur de vitesse de double-tapotement par geste |
BTN_TOOL_TRIPLETAP |
Indicateur de vitesse du geste Appuyer trois fois |
Sous-tableau H : Raccourcis d'application
| Code | Action cible |
|---|---|
KEY_WWW |
Lance le navigateur Web par défaut |
KEY_MAIL |
Ouvre le client de messagerie par défaut |
KEY_BOOKMARKS |
Ouvre la liste des favoris du navigateur |
KEY_CALC |
Ouvre l'utilitaire de calculatrice |
KEY_FILE |
Ouvre l'explorateur de fichiers local |
KEY_EDIT |
Déclencheur de modification de document |
KEY_NEW |
Déclencheur "Créer un document" |
KEY_OPEN |
Déclencheur d'ouverture de document |
KEY_SAVE |
Déclencheur de tâche d'enregistrement de fichier |
KEY_CLOSE |
Déclencheur de tâche de fermeture de fichier |
KEY_PRINT |
Déclencheur de tâche d'impression de fichier |
KEY_COPY |
Action de copie du tampon du presse-papiers |
KEY_PASTE |
Action d'insertion du contenu du presse-papiers |
KEY_CUT |
Action de couper le contenu du presse-papiers |
KEY_UNDO |
Annuler l'action du presse-papiers |
KEY_REDO |
Répéter l'action du presse-papiers |
KEY_CANCEL |
Déclencheur du processus d'annulation de Buffer |
KEY_FIND |
Utilitaire de recherche de documents |
KEY_REFRESH |
Utilitaire d'actualisation des documents |
KEY_EXIT |
Utilitaire de fermeture des documents |
KEY_DOCUMENTS |
Lance le portail des documents système |
KEY_HOMEPAGE |
Lance le navigateur de la page d'accueil |
KEY_FAVORITES |
Ouvre le portail des favoris du navigateur |
KEY_CHAT |
Lance la messagerie instantanée |
KEY_EMAIL |
Déclencheur de lancement d'adresse e-mail secondaire |
KEY_FINANCE |
Ouvrir l'utilitaire de stock/finance |
KEY_SPORT |
Ouvrir l'utilitaire de suivi des sports |
KEY_SHOP |
Ouvrir le portail d'achat numérique |
KEY_PLAYER |
Ouvrir le lecteur multimédia principal |
KEY_MP3 |
Ouvrir le lecteur MP3 principal |
KEY_TEXT |
Ouvrir l'éditeur de texte par défaut |
KEY_LIST |
Ouvrir l'utilitaire de checklist |
KEY_MEMO |
Ouvrir l'utilitaire de bloc-notes / mémo |
KEY_CALENDAR |
Ouvre le portail de l'agenda |
KEY_DIRECTORY |
Ouvre le répertoire d'adresses système |
KEY_COMPUTER |
Ouvre l'explorateur de spécifications |
KEY_TV/KEY_TV2 |
Lancement du portail TV |
KEY_RADIO |
Lance l'utilitaire radio |
KEY_CD/KEY_DVD |
Active le lecteur de disque optique |
KEY_AUDIO/KEY_VIDEO |
Accéder aux spécifications média |
KEY_TUNER |
Configure les récepteurs/tuner |
KEY_SAT/KEY_SAT2 |
Configure les flux satellites |
KEY_TAPE |
Lire un deck de bandes |
KEY_VCR |
Lire le flux du lecteur VCR |
KEY_VCR2 |
Lire le flux du lecteur VCR 2 |
KEY_AUX |
Entrées de port média auxiliaires |
KEY_SETUP |
Menu de configuration |
De KEY_PROG1 à _PROG4 |
Clés de programme définies par l'utilisateur |
KEY_ZOOM |
Activer/Désactiver le zoom de la fenêtre d'affichage |
KEY_MODE |
Sélection du mode de fenêtre d'affichage |
KEY_KEYBOARD |
Afficher/Masquer le clavier virtuel |
KEY_LANGUAGE |
Changer la langue de la piste audio |
KEY_TITLE |
Ouvrir les options du titre du contenu multimédia |
KEY_SUBTITLE |
Interface d'activation/désactivation des sous-titres |
KEY_ANGLE |
Changer l'angle de la caméra vidéo |
KEY_EPG |
Ouvrir le guide électronique des programmes |
KEY_PVR |
Ouvrir l'enregistreur vidéo personnel |
KEY_MHP |
Ouvrir la plate-forme multimédia de la maison |
KEY_CHANNEL |
Ouvrir les chaînes du tuner TV |
KEY_CHANNELUP |
Régler la chaîne TV vers le haut |
KEY_CHANNELDOWN |
Descendre d'une chaîne TV |
KEY_RED |
Bouton interactif rouge |
KEY_GREEN |
Bouton interactif vert |
KEY_YELLOW |
Bouton interactif jaune |
KEY_BLUE |
Bouton interactif bleu |
KEY_FIRST |
Sélectionner la première option d'article |
KEY_LAST |
Sélectionner l'option "Dernier élément" |
KEY_NEXT |
Sélectionner l'option "Piste suivante" |
KEY_PREVIOUS |
Sélectionner l'option de piste précédente |
KEY_RESTART |
Redémarrer la boucle de la piste multimédia |
KEY_SLOW |
Option de lecture au ralenti |
KEY_AB |
Boucle de répétition A-B |
KEY_PLAYCD |
Commande de lecture du lecteur CD |
KEY_PAUSECD |
Commande de pause du lecteur CD |
KEY_STOPCD |
Commande d'arrêt du lecteur CD |
KEY_DIGITS |
Commande de saisie au clavier numérique |
KEY_TEEN |
Option "Valeurs pour les adolescents" du clavier |
KEY_TWEN |
Option de valeurs twen du clavier |
KEY_DEL_EOL |
Supprimer jusqu'à la fin de la ligne |
KEY_DEL_EOS |
Supprimer jusqu'à la fin de la mémoire tampon de l'écran |
KEY_INS_LINE |
Insérer un tampon de nouvelle ligne |
De KEY_BRL_DOT1 à _DOT8 |
Saisie avec les boutons de la plage braille |
KEY_VOICECOMMAND |
Lance l'application d'assistance vocale |
KEY_SELECTIVE_SCREEN |
Déclenche la capture d'écran régionale |
KEY_BATTERY |
Interroge les notifications de batterie |
KEY_STAR/KEY_SHARP |
Symboles du clavier téléphonique |
KEY_PLUS |
Symbole plus sur un clavier téléphonique |
KEY_INFO |
Afficher la superposition du panneau d'informations |
KEY_TIME |
Afficher l'heure actuelle |
KEY_VENDOR |
Demander les spécifications du fournisseur |
KEY_ARCHIVE |
Ouvre l'utilitaire d'archivage local |
KEY_PROGRAM |
Configurer les paramètres du programme |
KEY_POWER2 |
Déclenche l'alimentation de secours |
EV_ABS : événements de mouvement absolu
Le type d'événement EV_ABS est essentiel pour simuler des gestes précis (tapotements, glissements, pincements multitouch) et des ajustements avec un joystick. Les coordonnées absolues ci-dessous correspondent directement à la résolution physique de l'écran sous-jacent.
| Code | Plage de coordonnées | Description |
|---|---|---|
ABS_MT_TRACKING_ID |
-1 ou ≥0 |
ID de suivi ; -1 met fin au contact |
ABS_MT_POSITION_X |
De 0 à 1767 |
Coordonnée X (Pixel Fold) |
ABS_MT_POSITION_Y |
De 0 à 2207 |
Coordonnée Y (Pixel Fold) |
ABS_MT_TOUCH_MAJOR |
pixels | Largeur du grand axe de la zone tactile |
ABS_MT_TOUCH_MINOR |
pixels | Largeur de l'axe mineur de la zone tactile |
ABS_MT_WIDTH_MAJOR |
pixels | Largeur de l'axe principal de l'outil |
ABS_MT_WIDTH_MINOR |
pixels | Largeur du petit axe de l'outil |
ABS_MT_ORIENTATION |
De 0 à 255 |
Angle d'orientation du contact |
ABS_MT_PRESSURE |
De 0 à 255 |
Grandeur de la force de contact |
ABS_MT_DISTANCE |
mm | Distance de survol par rapport à l'écran |
ABS_MT_TOOL_TYPE |
De 0 à 2 |
0=doigt, 1=stylet, 2=crayon |
ABS_MT_BLOB_ID |
entier | Identifiant du blob de contact |
ABS_MT_TOOL_X |
pixels | Coordonnée de position X de l'outil |
ABS_MT_TOOL_Y |
pixels | Coordonnée de la position Y de l'outil |
ABS_MT_SLOT |
De 0 à N |
Emplacement actif (protocole B) |
ABS_X / _Y / _Z |
analogique | Axes de coordonnées du joystick |
ABS_RX / _RY / _RZ |
analogique | Axes de rotation du joystick |
ABS_THROTTLE/_BRAKE |
analogique | Pédales et commandes de direction |
ABS_HAT0X/_HAT0Y |
-1 / 0 / 1 |
Chapeau du pavé directionnel et commutateurs de point de vue |
ABS_PRESSURE |
De 0 à 255 |
Niveau de pression du stylet / pointeur |
ABS_DISTANCE |
mm | Distance de survol (stylet) |
ABS_TILT_X/_TILT_Y |
degrés | Angles d'inclinaison du stylet |
ABS_VOLUME |
analogique | Niveaux de volume de la manette |
L'interaction tactile Android est basée sur les protocoles multitouch (MT). Les émulateurs modernes implémentent à la fois le protocole A (sans état, en envoyant des paquets de contacts séparés par des marques de synchronisation) et le protocole B (avec état, en attribuant des contacts à des emplacements de suivi dédiés). Le protocole B permet de suivre efficacement plusieurs contacts simultanés pour les gestes tels que le pincement pour zoomer.
EV_REL et EV_SW : mouvement et commutateurs matériels
La catégorie d'événements EV_REL gère les modifications relatives du pointeur ou des coordonnées, ce qui est principalement utilisé pour émuler les mouvements de la souris externe ou les molettes de défilement. La catégorie d'événements EV_SW gère les commutateurs d'appareils physiques, par exemple si un téléphone pliable ou une tablette sont pliés, ou si un matériel audio externe est inséré.
| Code | Valeurs | Description |
|---|---|---|
REL_X |
Delta | Déplacement horizontal du curseur |
REL_Y |
Delta | Déplacement vertical du curseur |
SW_LID |
0/1 |
État du couvercle de l'ordinateur portable (0=ouvert, 1=fermé) |
SW_TABLET_MODE |
0/1 |
État du mode Tablette (0=désactivé, 1=activé) |
SW_HEADPHONE_INSERT |
0/1 |
État du connecteur casque (0=débranché, 1=branché) |
SW_MICROPHONE_INSERT |
0/1 |
État du connecteur micro (0=désactivée, 1=activée) |
Syntaxe de répartition des commandes
Pour envoyer ces codes, mettez en forme la commande de la console avec les types, les codes et les valeurs séparés par des deux-points. Vous pouvez mettre en file d'attente plusieurs modifications de coordonnées dans une seule chaîne. Il est essentiel d'toujours ajouter une marque de synchronisation finale (EV_SYN:0:0) pour indiquer que le framework de l'émulateur doit regrouper et traiter ces entrées ensemble.
Exemples de script d'événement et de geste
Étant donné que Telnet permet d'envoyer des paramètres en plusieurs parties, vous pouvez simuler des séquences de gestes physiques réalistes. Vous trouverez ci-dessous les structures de script d'événement brut permettant d'automatiser les gestes depuis la console hôte.
Simuler un appui sur l'écran
Pour effectuer un appui sur un écran propre à une coordonnée cible, attribuez un ID de suivi, spécifiez les coordonnées X et Y sur l'écran, simulez le contact tactile, synchronisez, puis relâchez.
# Press down at coordinate (400, 800) and sync
event send EV_ABS:ABS_MT_TRACKING_ID:1
OK
event send EV_ABS:ABS_MT_POSITION_X:400
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Lift finger up and sync
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Simuler un défilement vertical (balayage)
Pour exécuter un geste de balayage, maintenez le contact aux coordonnées de départ, envoyez des frames de coordonnées de mouvement intermédiaires et relâchez à la fin.
# Finger touch down at start coordinate (500, 1600)
event send EV_ABS:ABS_MT_TRACKING_ID:2
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1600
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Move coordinates upward dynamically
event send EV_ABS:ABS_MT_POSITION_Y:1200
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:400
OK
event send EV_SYN:0:0
OK
# Finger release at coordinate (500, 400)
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Simuler un geste de zoom par pincement
Pour déclencher un zoom à deux doigts, utilisez les emplacements MT actifs (0 et 1) pour suivre et coordonner deux coordonnées tactiles simultanées qui s'éloignent l'une de l'autre.
# Finger 1 down at (500, 1000) using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:10
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Finger 2 down at (600, 1000) using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:11
OK
event send EV_ABS:ABS_MT_POSITION_X:600
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_SYN:0:0
OK
# Fingers slide apart from each other
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_POSITION_X:300
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_POSITION_X:800
OK
event send EV_SYN:0:0
OK
# Lift Finger 1 using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_SYN:0:0
OK
# Lift Finger 2 using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Simuler un changement de connexion du casque
Simulez l'insertion ou le retrait d'un connecteur casque pour tester les commutateurs de routage audio. Une valeur 1 représente l'insertion d'une prise et 0 le retrait d'un casque.
# Simulate headphones plugged in
event send EV_SW:SW_HEADPHONE_INSERT:1 EV_SYN:0:0
OK
# Simulate headphones unplugged
event send EV_SW:SW_HEADPHONE_INSERT:0 EV_SYN:0:0
OK
Découvrir les codes d'événements de la console à partir d'un appareil réel
Pour connaître la séquence de syntaxe d'événement exacte pour toute action personnalisée ou geste de bouton, connectez-vous via adb shell et exécutez l'utilitaire de diagnostic getevent. Lorsque vous interagissez avec l'interface utilisateur de l'émulateur, la console affiche les codes, les types et les positions exacts des événements.
# Run getevent to monitor input events dynamically
adb shell getevent -lt
/dev/input/event12: EV_KEY KEY_POWER DOWN
/dev/input/event12: EV_SYN SYN_REPORT 00000000
/dev/input/event12: EV_KEY KEY_POWER UP
/dev/input/event12: EV_SYN SYN_REPORT 00000000
- event text message : envoie une chaîne de caractères simulant des pressions de touche. Le message doit être une chaîne UTF-8. Les posts Unicode sont mappés à l'envers selon le clavier de l'appareil actuel, et les caractères non pris en charge sont supprimés de manière silencieuse.
Commandes d'état de l'alimentation
Affichage de l'alimentation : affiche l'état de la batterie et du chargeur.
power ac {on| off} : définit l'état de charge sur secteur sur "on" (activé) ou "off" (désactivé).
power status {unknown| charging| discharging| not-charging| full} : modifie l'état de la batterie comme indiqué.
power present {true| false} : définit l'état de présence de la batterie.
power health {unknown| good| overheat| dead| overvoltage| failure} : définit l'état de la batterie.
power capacity percent : définit l'état de la capacité de la batterie restante en tant que pourcentage compris entre 0 et 100.
État de la connexion réseau (Ethernet et réseau mobile uniquement)
network status : vérifie l'état du réseau ainsi que les caractéristiques de retard et de débit actuelles.
network delay latencyModifie la latence du réseau émulé.L'émulateur vous permet de simuler différents niveaux de latence réseau afin que vous puissiez tester votre application dans un environnement plus représentatif des conditions réelles de son exécution. Vous pouvez définir un niveau ou une plage de latence au démarrage de l'émulateur, ou utiliser la console pour modifier la latence pendant que l'application s'exécute dans l'émulateur.
Le format de la latence réseau est l'un des suivants (les nombres sont exprimés en millisecondes) :
Format de latence réseau :
gprs : GPRS, qui utilise une plage de latence de 150 au minimum et de 550 au maximum.
edge : EDGE/EGPRS, qui utilise une plage de latence de 80 au minimum et de 400 au maximum.
umts : UMTS/3G, qui utilise une plage de latence de 35 au minimum et de 200 au maximum.
none : aucune latence.
num : émule la latence spécifiée en millisecondes.
min:max : émule la plage de latence spécifiée.
Pour définir la latence au démarrage de l'émulateur, utilisez l'option d'émulateur
-netdelayavec une valeur de latence acceptée. Exemples :emulator -netdelay gprs emulator -netdelay 40,100Pour modifier le retard réseau pendant que l'émulateur s'exécute, connectez-vous à la console et utilisez la commande
network delay:network delay gprs network delay 40 100network speed speedL'émulateur vous permet de simuler différents taux de transfert réseau. Vous pouvez définir un taux ou une plage de transfert au démarrage de l'émulateur, ou utiliser la console pour modifier ce taux pendant que l'application s'exécute dans l'émulateur.Le format de la vitesse du réseau est l'un des suivants (les nombres sont exprimés en kbit/s) :
Format de débit réseau :
gsm : GSM/CSD, qui utilise un débit montant de 14,4 et un débit descendant de 14,4.
hscsd : HSCSD, qui utilise un débit montant de 14,4 et un débit descendant de 43,2.
gprs : GPRS, qui utilise un débit montant de 40,0 et un débit descendant de 80,0.
edge : EDGE/EGPRS, qui utilise un débit montant de 118,4 et un débit descendant de 236,8.
umts : UMTS/3G, qui utilise un débit montant de 128,0 et un débit descendant de 1 920.
hsdpa : HSDPA, qui utilise un débit montant de 348,0 et un débit descendant de 14 400,0.
lte : LTE, qui utilise un débit montant de 58 000 et un débit descendant de 173 000.
evdo : EvDo, qui utilise un débit montant de 75 000 et un débit descendant de 280 000.
full : débit illimité, mais qui dépend de la vitesse de connexion de votre ordinateur.
num : définit un débit exact en kbit/s pour le chargement et le téléchargement.
up:down : définit des débits exacts en kbit/s pour le chargement et le téléchargement séparément.
Pour définir le débit réseau au démarrage de l'émulateur, utilisez l'option d'émulateur
-netspeed. Exemples :emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26Pour modifier le débit réseau pendant que l'émulateur s'exécute, connectez-vous à la console et utilisez la commande
network speed:network speed 14.4 80network capture {start| stop} fileEnvoie des paquets à un fichier. La liste suivante décrit les paramètres et leurs valeurs :Remarque : À partir de l'émulateur Android 36.5, le trafic de connexion Wi-Fi est géré par netsim par défaut. La commande de console de capture réseau ne capture que l'ancien trafic cellulaire/WAN acheminé via la pile slirp QEMU. Pour capturer des paquets Wi-Fi, Bluetooth ou réseau avancé dans les versions modernes de l'émulateur, consultez Capturer le trafic réseau dans le guide sur la mise en réseau avancée de l'émulateur.
start file : démarre la capture des paquets réseau. Pour des raisons de sécurité, le fichier doit être un nom de fichier brut (sans séparateurs de chemin d'accès tels que
/et sans..). Le fichier de capture de paquets sera enregistré dans le répertoire de contenu de votre AVD, dans le dossierconsole_out/(par exemple,~/.android/avd/avd_name.avd/console_out/file).stop file : arrête d'envoyer des paquets au fichier spécifié.
Émulation de téléphonie
Android Emulator inclut ses propres modems émulés GSM et CDMA qui vous permettent de simuler des fonctions de téléphonie dans l'émulateur. Par exemple, GSM vous permet de simuler des appels téléphoniques entrants, ainsi que d'établir et d'arrêter des connexions de données. Avec CDMA, vous fournissez une source d'abonnement et la liste d'itinérance préférée. Le système Android gère les appels simulés exactement comme les appels réels. L'émulateur n'est pas compatible avec l'audio des appels.
gsm {call| accept| cancel| busy} phonenumberVoici les paramètres GSM :- call : simule un appel téléphonique entrant depuis un numéro de téléphone.
- accept : accepte un appel entrant de phonenumber et fait passer l'état de l'appel à actif. Vous ne pouvez définir l'état d'un appel sur "actif" que si son état actuel est "en attente" ou "en pause".
- cancel : met fin à un appel téléphonique entrant ou sortant vers un numéro de téléphone.
- busy : clôture un appel sortant vers un numéro de téléphone et définit l'état de l'appel sur "busy" (occupé). Vous ne pouvez définir l'état d'un appel sur "Occupé" que si son état actuel est "En attente".
gsm {data| voice} stateLa commande d'état des données modifie l'état de la connexion de données GPRS, tandis que la commande d'état vocal modifie l'état de la connexion vocale GPRS, comme suit :- Non enregistré : aucun réseau n'est disponible.
- home : sur un réseau local, sans itinérance.
- roaming : sur un réseau en itinérance.
- searching : recherche de réseaux.
- Refusé : appels d'urgence uniquement.
- off : identique à "non enregistré".
- on : identique à "home".
gsm hold : définit l'état d'un appel sur "En attente". Vous ne pouvez définir l'état d'un appel sur "En attente" que si son état actuel est "Actif" ou "En attente".
gsm list : affiche la liste de tous les appels entrants et sortants, ainsi que leur état.
gsm status : affiche l'état actuel de la connexion vocale/de données GSM. Les valeurs sont celles décrites pour les commandes vocales et de données.
gsm signal {rssi| ber}Modifie l'intensité du signal (rssi) et le taux d'erreur par bit (ber) enregistrés au cours des 15 prochaines secondes de mise à jour. La liste suivante décrit les paramètres et leurs valeurs :- rssi : la plage est comprise entre 0 et 31. 99 correspond aux valeurs inconnues.
- ber : la plage est comprise entre 0 et 7. 99 correspond aux valeurs inconnues.
gsm signal-profile num : définit le profil d'intensité du signal. num est un nombre compris entre 0 et 4.
cdma ssource sourceDéfinit la source d'abonnement CDMA actuelle, où la source est une liste d'autorisation basée sur le réseau qui contient les abonnés de l'opérateur CDMA et leurs valeurs, comme suit :- nv : lit l'abonnement à partir d'une RAM non volatile.
- ruim : lit l'abonnement à partir d'un module d'identité d'utilisateur amovible (RUIM).
cdma prl_version version : vide la version actuelle de la liste d'itinérance préférée (PRL). Le numéro de version correspond à la base de données PRL qui contient les informations utilisées lors du processus de sélection et d'acquisition du système.
Gestion des capteurs sur l'émulateur
Ces commandes concernent les capteurs disponibles dans l'appareil virtuel Android. En plus d'utiliser la commande du capteur, vous pouvez afficher et ajuster les paramètres dans l'émulateur sur l'écran "Capteurs virtuels" des onglets "Accéléromètre" et "Capteurs supplémentaires".
sensor status : liste tous les capteurs et leur état.
sensor get sensor-name : obtient les paramètres de sensor-name. L'exemple suivant obtient la valeur du capteur d'accélération :
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348Les valeurs d'accélération séparées par des caractères deux-points(:) font référence aux coordonnées x, y et z des capteurs virtuels.
sensor set sensor-name value-x:value-y:value-z : définit les valeurs pour sensor-name. L'exemple suivant définit le capteur d'accélération sur les valeurs x, y et z, séparées par des caractères deux-points.
sensor set acceleration 2.23517e-07:9.77631:0.812348
Émulation de SMS
sms send sender-phone-number textmessageGénère un SMS entrant émulé. La liste suivante décrit les paramètres et leurs valeurs :- sender-phone-number : contient une chaîne numérique arbitraire.
- textmessage : message SMS.
Dans l'exemple suivant, le message "hi there" est envoyé au numéro de téléphone 4085555555 :
sms send 4085555555 hi there
La console transfère le SMS au framework Android, qui le transmet à une application de l'émulateur qui gère les SMS, comme l'application Messages. Si vous transmettez 10 chiffres, l'application en fait un numéro de téléphone. Les chaînes numériques plus longues ou plus courtes indiquent la manière dont vous les avez envoyées.
Simulation d'empreintes digitales
finger touch fingerprint-id : simule la pression d'un doigt sur le capteur.
finger remove : simule le retrait du doigt.
Pour découvrir comment utiliser ces commandes, consultez la section suivante sur la simulation et la validation d'empreintes digitales.
Enregistr. écran
La commande d'enregistrement d'écran permet de capturer des fichiers vidéo de haute qualité de l'écran physique de l'émulateur directement depuis le système hôte. Cela est très utile pour les pipelines d'intégration continue et les rapports de bugs automatisés.
screenrecord {start| stop} fileDémarre ou arrête le processus d'enregistrement de l'écran.- start file : démarre l'enregistrement vidéo. Le fichier de sortie doit se terminer par l'extension obligatoire
.webm. La vidéo enregistrée est enregistrée directement dans le répertoire de sortie de la console de votre AVD :~/.android/avd/avd_name.avd/console_out/file. - stop file : arrête le processus d'enregistrement de l'écran actif.
- start file : démarre l'enregistrement vidéo. Le fichier de sortie doit se terminer par l'extension obligatoire
Automatisation et macros
Le sous-système d'automatisation permet aux développeurs d'enregistrer les transitions d'état des macros sur l'appareil virtuel en cours d'exécution et de les relire pour exécuter des flux de tests automatisés.
automation {record| stop-record| play| stop-play}Gère les enregistrements de macros automatiques.- record : commence à enregistrer les changements d'état et les entrées de l'appareil.
- stop-record : arrête la session d'enregistrement de macro en cours.
- play : lance la lecture d'une séquence de macro enregistrée.
- stop-play : interrompt la séquence de lecture de la macro active.
Physique (6 DOF)
Les commandes physiques gèrent la journalisation des poses spatiales de vérité terrain pour les modèles de mouvement physique à six degrés de liberté (6DoF), qui sont utilisés pour simuler le suivi du mouvement avancé.
physics {record-gt| stop}Gère les enregistrements du modèle de pose physique.- record-gt : commence à enregistrer les données de mouvement 6 DoF de la vérité terrain.
- stop : arrête le processus d'enregistrement de la vérité de terrain en cours.
Commandes de contrôle des appareils avancées
Cette section regroupe les points de terminaison des commandes de la console hautement spécialisés pour les configurations d'émulation avancées, y compris les proxys réseau, les configurations multi-écrans, les remplacements de rendu et le débogage direct de l'hyperviseur.
multidisplay {add| del}Ajoute ou supprime des écrans virtuels secondaires pour tester les configurations multi-écrans. Remarque : Les écrans secondaires ne sont pas compatibles avec les profils pliables tels que le Pixel Fold ou l'émulateur redimensionnable.proxy {set| clear}Configure le transfert de proxy réseau de manière programmatique à partir de la console.- set host port : configure les paramètres proxy cible.
- clear : rétablit les configurations de proxy par défaut. Remarque : Les opérations de définition de proxy échouent dans les environnements d'exécution sans interface graphique.
virtualscene-image {wall| table} image_pathPersonnalise les murs d'arrière-plan ou les tables horizontales affichés dans le flux de la caméra de la scène virtuelle avec un fichier image utilisateur personnalisé.resize-display scaleAjuste dynamiquement la résolution de l'écran entre les échelles prédéfinies. Remarque : Les ajustements de résolution ne sont pas compatibles avec les configurations sans interface graphique.nodraw {on| off}Désactive le rendu de l'interface utilisateur physique sur l'écran hôte pour réduire la mémoire système et la charge du GPU lors des exécutions d'automatisation sans affichage en arrière-plan à volume élevé.grpc portConfigure le contrôle avancé des appareils par programmation sur des points de terminaison de port gRPC personnalisés.qemu monitorFournit un accès direct au terminal interactif de la console de l'hyperviseur sous-jacent. Cette commande ne peut être saisie que lors de sessions de console Telnet actives.icebox track pidActive les instantanés système automatiques lorsque le processus de l'application spécifiée rencontre une exception non gérée ou un plantage.phonenumber numberDéfinit le numéro de téléphone local virtuel de l'appareil cible.
Interface programmatique gRPC
Les versions modernes de l'émulateur sont compatibles avec une puissante interface de programmation gRPC en plus de l'ancienne console Telnet. Bien que la console Telnet soit idéale pour les sessions interactives rapides ou les scripts simples, l'interface gRPC est conçue pour un contrôle automatisé hautes performances, sécurisé et robuste dans les environnements d'intégration continue (CI) et sans interface graphique. En proposant des points de terminaison de service directs, gRPC élimine la nécessité d'analyser les flux de texte, de gérer les échanges de sessions de terminal ou d'exposer les ports localhost non chiffrés.
Pour vous aider à choisir entre l'ancienne console Telnet et l'interface programmatique gRPC moderne, consultez la comparaison suivante des performances, de la sécurité et des fonctionnalités :
| Fonctionnalité | Console Telnet | Interface gRPC |
|---|---|---|
| Recommandé pour | Débogage manuel, sessions interactives. | CI/CD sans interface graphique, plates-formes de tests automatisés lourdes. |
| Speed | Plus lent : surcharge de texte, latence de connexion. | HTTP/2 multiplexé et optimisé, proto rapide. |
| Sécurité | Non chiffré ; ports locaux (5554 à 5585). | Peut être sécurisé par TLS et fonctionne sur les réseaux. |
| Flux | Non compatible ; requête/réponse uniquement. | Flux pour logcat, capture audio de l'invité. |
| Multimédia | Écrit les fichiers de sortie sur le disque hôte/invité. | Tampons binaires directs sur le câble. |
| OS invité | Limité aux commandes d'émulateur fixes. | Exécute les commandes shell Bash de l'invité natif. |
Lancer et appeler gRPC
Pour utiliser les points de terminaison gRPC, lancez l'Android Emulator à partir de la ligne de commande et incluez l'indicateur -grpc en spécifiant le port de bouclage cible.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
Une fois l'émulateur en cours d'exécution avec le service gRPC activé, vous pouvez effectuer des appels RPC programmatiques. Pour les tests en ligne de commande, utilisez l'utilitaire grpcurl pour communiquer avec les services de l'émulateur. Toutes les requêtes sont mises en forme au format JSON et envoyées en texte brut.
# Query the status of the virtual device using grpcurl
grpcurl -plaintext -d '{}' localhost:8556 \
android.emulation.control.EmulatorController/getStatus
# Simulate an incoming phone call
grpcurl -plaintext -d '{"operation": "InitCall", "number": "1234567890"}' localhost:8556 \
android.emulation.control.EmulatorController/sendPhone
# Simulate typing text into the guest OS
grpcurl -plaintext -d '{"text": "Hello"}' localhost:8556 \
android.emulation.control.EmulatorController/sendKey
Mappage de la console Telnet au service gRPC
Le tableau de référence suivant mappe les anciennes commandes de la console Telnet à leurs services et méthodes gRPC correspondants, et indique comment automatiser les interactions courantes avec les appareils virtuels de manière programmatique :
| Catégorie | Ancienne commande Telnet | Service / Méthode gRPC |
|---|---|---|
| État | ping |
EmulatorController/getStatus |
| État | avd name |
incubating.AvdService/getAvdInfo |
| État | kill |
EmulatorController/setVmState |
| État | restart |
EmulatorController/setVmState |
| Alimentation | power display |
EmulatorController/getBattery |
| Alimentation | power capacity |
EmulatorController/setBattery |
| Géo-loc | geo fix |
EmulatorController/setGps |
| Capteurs | sensor set |
incubating.SensorService/setSensor |
| Biométrie | finger touch |
EmulatorController/sendFingerprint |
| Posture | posture |
EmulatorController/setPosture |
| Posture | physics/fold |
EmulatorController/setPhysicalModel |
| SMS | sms send |
EmulatorController/sendSms |
| Appel GSM | gsm call |
EmulatorController/sendPhone |
| Appel GSM | phonenumber |
EmulatorController/setPhoneNumber |
| Redirection | redir add |
Waterfall/ForwardPort |
| Entrée | event send EV_KEY |
EmulatorController/sendKey |
| Entrée | event send EV_ABS |
EmulatorController/sendTouch |
| Multimédia | screenrecord |
incubating.ScreenRecording |
| Affichage | nodraw |
EmulatorController/setDisplayMode |
| Instantanés | avd snapshot list |
SnapshotService/ListSnapshots |
| Instantanés | avd snapshot load/save |
SnapshotService/LoadSnapshot |
Commandes programmatiques propres à gRPC
L'interface gRPC offre plusieurs fonctionnalités de pointe qu'il est physiquement impossible d'exécuter sur les anciennes connexions à la console Telnet. Cela inclut le streaming direct de logcat, la capture ou l'injection audio bidirectionnelle, les modifications de l'interface graphique de l'hôte et l'accès direct au shell.
| Service / Méthode gRPC | Paramètre | Capacité |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
Diffuse les sorties logcat du système invité |
streamAudio |
{} |
Diffuse le son de l'enceinte via le câble |
injectAudio |
{"audio": "..."} |
Injecte des flux audio de micro |
UiController |
{"theme": "DARK"} |
Modifie les thèmes de la fenêtre hôte |
Waterfall/Exec |
{"cmd": "ls"} |
Exécute les commandes shell de l'OS invité natif |
Simulation et validation d'empreintes digitales
Utilisez la commande finger pour simuler et valider l'authentification par empreinte digitale pour votre application. Vous devez utiliser SDK Tools 24.3 ou une version ultérieure et Android 6.0 (niveau d'API 23) ou une version ultérieure.
Pour simuler et valider l'authentification par empreinte digitale, procédez comme suit :
Si vous n'avez pas encore d'ID d'empreinte, enregistrez une nouvelle empreinte dans l'émulateur en sélectionnant Settings > Security > Fingerprint (Paramètres > Sécurité > Empreinte digitale), puis en suivant les instructions d'enregistrement.
Configurez votre application pour qu'elle accepte l'authentification par empreinte digitale. Une fois cette étape effectuée, votre appareil affiche l'écran d'authentification par empreinte digitale.
Pendant que votre application affiche l'écran d'authentification par empreinte digitale, accédez à la console et entrez la commande
finger touchainsi que l'ID d'empreinte que vous avez créé. Cela simule un geste avec le doigt.Entrez ensuite la commande
finger removepour simuler le retrait d'un doigt. Votre application doit réagir comme si un utilisateur touchait le lecteur d'empreinte digitale, puis en retirait son doigt.