Comment puis-je lancer l'émulateur Android à partir de la ligne de commande?

Je suis sur Mac, je travaille sur Android development depuis le terminal. J'ai créé avec succès le projet HelloWorld et maintenant j'essaie de l'exécuter depuis la ligne de commande de L'émulateur Android. Qui commande exécute l'émulateur pour mon projet HelloWorld?

j'ai déjà les outils Android et plate-forme-Outils dans mon chemin.

Edit:

Comment dire à l'émulateur lancer mon projet HelloWorld depuis la ligne de commande? J'ai déjà construit le projet avec ant.

296
demandé sur Jeff Axelrod 2011-02-12 01:06:43

16 réponses

je suppose que vous avez construit votre projet, il suffit de le lancer, mais vous n'avez pas de AVDs et utiliser la ligne de commande pour toutes les actions. Vous devez faire ce qui suit.

  1. créez un nouvel appareil virtuel (AVD) pour la plate-forme dont vous avez besoin. Si vous devez utiliser la ligne de commande pour créer votre AVD, vous pouvez appeler android create avd -n <name> -t <targetID> où targetID est le niveau D'API dont vous avez besoin. Si vous pouvez utiliser GUI, il suffit de taper android avd et il lancera le directeur, où vous pouvez faire la même chose. Vous pouvez en savoir plus sur gestion AVD par GUI et par ligne de commande .
  2. Lancez L'AVD en utilisant la commande emulator -avd <name> ou en passant par L'interface graphique précédemment lancée. Attendez que l'émulateur se charge complètement, ça prend du temps. Vous pouvez lire à propos de options supplémentaires ici .
  3. Maintenant vous devez installer l'application sur votre AVD. Habituellement, pendant le développement, vous utilisez juste le même script Ant que vous avez utilisé pour construire le projet, juste sélectionner install cible. Cependant, vous pouvez installer l'application manuellement en utilisant la commande adb install <path-to-your-APK> .
  4. maintenant passez à l'émulateur et lancez votre application comme sur n'importe quel appareil normal, à travers le lanceur. Ou, comme alternative, vous pouvez utiliser la commande suivante: adb shell am start -a android.intent.action.MAIN -n <package>/<activity class> . Par exemple: adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld . Comme un commentateur suggéré, vous pouvez également remplacer org.sample.helloworld.HelloWorld dans la ligne ci-dessus avec juste .HelloWorld , et il fonctionnera aussi.
328
répondu Malcolm 2016-11-02 01:22:47

la Liste de tous vos émulateurs:

emulator -list-avds

Lancez l'un des émulateurs listés:

emulator @name-of-your-emulator

emulator est sous:

${ANDROID_SDK}/tools/emulator
192
répondu azibi 2016-06-26 14:33:10

je pense que le meilleur moyen de l'atteindre via le terminal est:

cd ~/Library/Android/sdk/tools

pour exécuter un certain AVD directement:

./emulator -avd {AVD_NAME}

pour lister vos AVDs utilisez:

./emulator -list-avds
52
répondu Ali Sao 2017-07-19 21:40:02

juste pour ajouter ici, chaque fois que vous obtenez" erreur: périphérique hors ligne " signifie que la connexion avec l'émulateur & pont adb a été rompue en raison du temps pris dans le démarrage de l'émulateur.

plutôt que de redémarrer l'émulateur à ce point essayez en dessous de deux commandes qui s'arrête et redémarrez le pont adb à nouveau.

adb kill-server

adb start-server

25
répondu ABDroids 2011-07-27 03:35:42

ici vous pouvez vérifier les options pour exécuter cette commande via la ligne de commande:

emulator -avd avd_name [-option [value]] ... [-qemu args]

par exemple, je l'utilise comme ceci ci-dessous:

emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0
19
répondu germangti 2017-03-01 03:33:40

open CMD

  1. Ouvrez L'Invite De Commande
  2. tapez le chemin de l'émulateur dans mon cas

C:\adt-bundle-windows-x86_64-20140702\sdk\tools enter image description here

  1. écriture "de l'émulateur -avd emulatorname" dans mon cas

emulator-avd AdilVD

enter image description here

11
répondu Adiii 2016-05-19 03:31:01

si vous essayez strictement d'exécuter L'émulateur à partir de la ligne de commande essayez ceci dans OSX.

"/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none

vous pouvez le simplifier en ajoutant un alias à la .bash_profile, et de l'envoyer à une tâche en arrière-plan.

alias android='/Applications/Android\ Studio.app/sdk/tools/emulator <NAMEOFDEVICE> -netspeed full -netdelay none &'

informez Bash des changements.

source ~/.bash_profile
9
répondu Rick 2016-08-28 21:26:49

ouvrir l'invite de commande et passer à <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

ici "emulator" est la commande utilisée pour ouvrir votre appareil virtuel Android .

6
répondu Chandra Shekhar 2017-03-01 04:18:01

(Linux) En vous terminal copier & coller et changer les trois champs en bleu

/home/YouUser/Folder/adt-bundle-linux-x86_64-20140702/sdk/tools/emulator64-x86 -avd Android5.1.1

YouUser = user of session in linux
Folder = path of folfer
Android5.1.1 = You version of android in the emulator,for example (Android4.4.2)

vous pouvez voir les émulateurs dans votre dossier Accueil cd / home/Youuser/.android / avd /

4
répondu David Hackro 2015-05-30 18:44:17

de nos jours asuming vous avez Android Studio installé (2.2) dans mon cas et juste 1 émulateur, vous pourriez utiliser ce liner

export ANDROID_SDK_ROOT=~/Library/Android/sdk/ && emulator '@'`emulator -list-avds`

si vous le faites souvent, facilitez-le:

$ echo 'export ANDROID_SDK_ROOT=~/Library/Android/sdk/' >> ~/.profile

Ajouter un alias à ~.aliases

alias androidup="emulator '@'`emulator -list-avds`" 

Rappel source ~/.profile ~/.aliases avant de le tester

la prochaine fois juste $ androidup

3
répondu Jaime Agudo 2017-03-14 14:11:26

la commande android create avd est dépréciée. Il est maintenant recommandé d'utiliser avdmanager à la place pour lancer des émulateurs à partir de la ligne de commande.

tout d'abord, créer un nouvel émulateur si on n'existe pas déjà:

avdmanager create avd --name "MyEmulator" -k "system-images;android-
26;google_apis;x86"

cela suppose que vous avez déjà installé une image système X86 qui correspond à L'API 26, et que vous avez installé L'API Google.

Vous pouvez alors lancer l'émulateur avec emulator @MyEmulator .

3
répondu fractalwrench 2018-01-05 13:43:50

liste des noms avd disponibles sur

.android / avd

/SDK_PATH/outils/emulateur -netdelay aucun -netspeed plein avd "AVD_NAME "

2
répondu rinkesh 2015-02-17 05:51:35

sous windows, j'utilise ce script PowerShell pour le démarrer.

$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe"; 
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;
0
répondu Andy Li 2017-07-24 01:16:25

émulateur de départ de la ligne de commande avec l'aide du dns

programme d'émulation de l'emplacement : /Utilisateurs/{{nom d'utilisateur}}/Library/Android/sdk/tools

  1. :- Émulateur-Liste-avds

  2. Démarrer l'émulateur avec dns ensemble /Utilisateurs/{{nom d'utilisateur}}/Library/Android/sdk/tools/emulateur -avd Pixel_API_26 -un serveur dns 8.8.8.8

0
répondu dayanand 2018-04-09 06:15:21

sur Mac (et Linux je pense), après avoir créé votre AVD, vous pouvez créer un alias: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

Note : l'exécution de l'alias ne verrouillera pas votre terminal, si vous le souhaitez, il suffit de supprimer le dernier '&' .

Exécuter emulator elle-même vous donnera une erreur, car il s'attendre à ce que, dans votre position actuelle, vous avez: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64' pour démarrer l'émulateur.

0
répondu Frismaury 2018-04-18 21:05:41

j'ai écrit ce script shell simple en utilisant Zenity qui vous permet de choisir quel avd vous voulez lancer. Si vous n'avez pas défini ANDROID_HOME, vous pouvez simplement le remplacer par le chemin complet de l'émulateur. Ce serait facile à faire avec select au lieu de Zenity aussi, mais j'ai opté pour Zenity puisque je l'exécute à partir du menu Xfce-application (bien que A.desktop-file).

#!/bin/sh

opt=$(zenity --title="Choose AVD" --text="Choose which emulator to start" --list \
                   --column="Devices" --separator="\n" `$ANDROID_HOME/emulator/emulator -list-avds`);

$ANDROID_HOME/emulator/emulator -avd $opt
0
répondu Pauli Kettunen 2018-05-18 09:04:27