Je suis sur Mac, je travaille sur le développement Android depuis le terminal. J'ai créé avec succès le projet HelloWorld et j'essaie maintenant de l'exécuter à partir de la ligne de commande de l'émulateur Android. Quelle commande exécute l'émulateur pour mon projet HelloWorld?
J'ai déjà les outils Android et les outils de plate-forme dans mon PATH.
Modifier:
Comment dire à l'émulateur d'exécuter mon projet HelloWorld à partir de la ligne de commande? J'ai déjà construit le projet avec ant.
Je suppose que vous avez construit votre projet et que vous avez juste besoin de le lancer, mais aucun AVD n’a été créé et vous devez utiliser la ligne de commande pour toutes les actions. Vous devez faire ce qui suit.
Android create avd -n <name> -t <targetID>
où ID-cible correspond au niveau de l'API dont vous avez besoin. Si vous pouvez utiliser l'interface graphique, tapez simplement Android avd
et le gestionnaire sera lancé, où vous pourrez faire de même. Vous pouvez en savoir plus sur Gestion des AVD via GUI et via la ligne de commande .emulator -avd <name>
ou via l’interface graphique précédemment lancée. Attendez que l’émulateur soit complètement chargé, cela prend du temps. Vous pouvez lire sur les options supplémentaires ici .install
target. Cependant, vous pouvez installer l'application manuellement à l'aide de la commande adb install <path-to-your-APK>
.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 l'a suggéré un commentateur, vous pouvez également remplacer org.sample.helloworld.HelloWorld
dans la ligne ci-dessus par juste .HelloWorld
, et cela fonctionnera également.Listez tous vos émulateurs:
emulator -list-avds
Exécutez l'un des émulateurs répertoriés:
emulator @name-of-your-emulator
où emulator
est sous:
${Android_SDK}/tools/emulator
cd ~/Library/Android/sdk/tools
./emulator -avd {AVD_NAME}
./emulator -list-avds
Juste pour ajouter ici, chaque fois que vous obtenez "erreur: périphérique hors ligne" signifie que la connexion avec émulateur et pont adb a été interrompue en raison du temps nécessaire au démarrage de l'émulateur.
Plutôt que de redémarrer l'émulateur à ce stade, essayez ci-dessous deux commandes qui arrêtent et redémarrent adb bridge à nouveau.
adb kill-server
serveur de démarrage adb
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
Si vous essayez strictement d'exécuter l'émulateur à partir de la ligne de commande, essayez ceci sous OSX.
"/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none
Vous pouvez le simplifier en ajoutant un alias au fichier .bash_profile et en l'envoyant à un travail 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
Ouvrez l'invite de commande et accédez à <Android-Home>\sdk\tools>emulator -avd <AVD_NAME>
Ici "emulator"
est la commande utilisée pour ouvrir votre Appareil virtuel Android .
(Linux) Dans votre 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 homecd /home/Youuser/.Android/avd/
La commande Android create avd
est obsolète. Il est maintenant recommandé d'utiliser avdmanager
pour lancer les émulateurs à partir de la ligne de commande.
Commencez par créer un nouvel émulateur s'il n'en existe pas déjà un:
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 correspondant à l'API 26 et que les API Google sont installées.
Vous pouvez ensuite lancer l'émulateur avec emulator @MyEmulator
.
De nos jours, en supposant que vous avez Android Studio installé (2.2) dans mon cas et juste 1 émulateur, vous pouvez utiliser cette doublure
export Android_SDK_ROOT=~/Library/Android/sdk/ && emulator '@'`emulator -list-avds`
Si vous le faites souvent, facilitez les choses:
$ echo 'export Android_SDK_ROOT=~/Library/Android/sdk/' >> ~/.profile
Ajouter un alias à ~.aliases
alias androidup="emulator '@'`emulator -list-avds`"
Rappelez-vous à source ~/.profile ~/.aliases
avant de le tester
La prochaine fois que $ androidup
Si vous avez Git Bash, vous pouvez ouvrir votre émulateur par un double-clic, avec une configuration initiale (testé sous Windows 10 uniquement) :
cd ~/AppData/Local/Android/sdk/emulator
./emulator -list-avds
et notez le nom de l'émulateur. MY_EMULATOR
par exemple.Ouvrez le Bloc-notes et ajoutez ces deux lignes (insérez le nom de votre émulateur au lieu de MY_EMULATOR
):
cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR
Enregistrez le fichier à un endroit qui convienne comme myfile. sh . Vous pouvez modifier "myfile" à votre guise, mais l'extension .sh est nécessaire.
chmod +x myfile.sh
. N'oubliez pas de mettre le nom de votre fichier à la place de myfile .Et c'est tout! À partir de maintenant, chaque fois que vous aurez besoin de démarrer cet émulateur, localisez simplement votre myfile.sh , double-cliquez dessus et attendez le lancement de votre émulateur Android!
liste des noms avd disponibles sur
.Android/avd
/ SDK_PATH/tools/emulator -netdelay none -netspeed full -avd "AVD_NAME"
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} &'
Remarque : l'exécution de l'alias ne verrouille pas votre terminal. Si vous le souhaitez, supprimez simplement le dernier '&'.
Exécuter emulator
il vous donnera une erreur car il s’attend à ce que, dans votre position actuelle, vous ayez: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'
pour démarrer l’émulateur.
Dans 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;
Démarrage de l'émulateur depuis la ligne de commande avec l'aide du DNS
Emplacement du programme d'émulateur:/Users/{{UserName}}/Library/Android/sdk/tools
Vérifier le fichier avd existant: - Emulator -list-avds
Démarrez l'émulateur avec le jeu de dns.
J'ai écrit ce script Shell simple à l'aide de Zenity qui vous permet de choisir le fichier avd que vous souhaitez exécuter. 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 également, mais j'ai opté pour Zenity Menu xfce-application (bien qu'un fichier .desktop).
#!/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
Exécutez le premier émulateur disponible:
~/Library/Android/sdk/tools/emulator -avd `~/Library/Android/sdk/tools/emulator -list-avds | awk '{print $1}'`