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.
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.
- 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 taperandroid 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 . - 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 . - 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 commandeadb install <path-to-your-APK>
. - 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 remplacerorg.sample.helloworld.HelloWorld
dans la ligne ci-dessus avec juste.HelloWorld
, et il fonctionnera aussi.
la Liste de tous vos émulateurs:
emulator -list-avds
Lancez l'un des émulateurs listés:
emulator @name-of-your-emulator
où emulator
est sous:
${ANDROID_SDK}/tools/emulator
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
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
open CMD
- Ouvrez L'Invite De Commande
- tapez le chemin de l'émulateur dans mon cas
- écriture "de l'émulateur -avd emulatorname" dans mon cas
emulator-avd AdilVD
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
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 .
(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 /
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
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
.
liste des noms avd disponibles sur
.android / avd
/SDK_PATH/outils/emulateur -netdelay aucun -netspeed plein avd "AVD_NAME "
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;
é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
-
:- Émulateur-Liste-avds
-
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
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.
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