Come si avvia l'emulatore Android dalla riga di comando?


373

Sono su Mac, sto lavorando allo sviluppo Android dal terminale. Ho creato con successo il progetto HelloWorld e ora sto provando a eseguirlo dalla riga di comando nell'emulatore Android. Quale comando esegue l'emulatore per il mio progetto HelloWorld?

Ho già gli strumenti Android e gli strumenti della piattaforma nel mio PERCORSO.

Modificare:

Come faccio a dire all'emulatore di eseguire il mio progetto HelloWorld dalla riga di comando? Ho già costruito il progetto con la formica.


Documenti pertinenti: crea con avdmanagere avvia con emulator.
jchook,

Risposte:


380

Presumo che tu abbia costruito il tuo progetto e che tu debba solo avviarlo, ma non hai creato alcun AVD e devi usare la riga di comando per tutte le azioni. Devi fare quanto segue.

  1. Crea un nuovo dispositivo virtuale (AVD) per la piattaforma di cui hai bisogno. Se devi utilizzare la riga di comando per creare il tuo AVD, puoi chiamare android create avd -n <name> -t <targetID>dove targetID è il livello API di cui hai bisogno. Se puoi usare la GUI, basta digitare android avde avvierà il gestore, dove puoi fare lo stesso. Puoi leggere ulteriori informazioni sulla gestione di AVD tramite la GUI e la riga di comando .
  2. Eseguire l'AVD utilizzando il comando emulator -avd <name>o tramite la GUI precedentemente lanciata. Attendere che l'emulatore si carichi completamente, ci vuole del tempo. Puoi leggere ulteriori opzioni qui .
  3. Ora devi installare l'applicazione sul tuo AVD. Di solito durante lo sviluppo usi semplicemente lo stesso script Ant che hai usato per costruire il progetto, basta selezionare installtarget. Tuttavia, è possibile installare l'applicazione manualmente usando il comando adb install <path-to-your-APK>.
  4. Ora passa all'emulatore e avvia l'applicazione come su qualsiasi dispositivo normale, tramite il programma di avvio. Oppure, in alternativa, è possibile utilizzare il seguente comando: adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>. Ad esempio: adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld. Come ha suggerito un commentatore, puoi anche sostituire org.sample.helloworld.HelloWorldla riga sopra con just .HelloWorlde funzionerà anche.

1
Il tuo elenco di 4 punti è quello che sto cercando. Quando corro adb install <path-to-your-APK>, ottengo error: device not found. Se eseguo l'emulatore in una shell e il comando di installazione di adb in un'altra, ottengo error: device offline. Come posso impostare un dispositivo virtuale emulato?
Thierry Lam,

3
OK, ho riportato le informazioni dalla versione precedente della risposta. :) Se ricevi il messaggio che il dispositivo è offline, penso che non hai ancora caricato il sistema. È inutile provare a inviare comandi all'emulatore quando mostra il logo Android, devi aspettare che ti mostri la schermata di blocco. E hai ragione che devi usare un'altra istanza della shell per inviare comandi al tuo dispositivo. A proposito, puoi controllare lo stato corrente dei dispositivi usando il adb devicescomando.
Malcolm,

1
@ThomasW Grazie, ho aggiunto queste informazioni alla risposta.
Malcolm,

1
@ L2G Se lo esegui come script, quindi sì, puoi farlo. Quando ho scritto la risposta, ho pensato che tu facessi tutto a mano, nel qual caso, ovviamente, puoi aspettare te stesso.
Malcolm,

4
riavviare adb-server da: adb kill-server; adb start-serverse non viene visualizzato nullaadb devices
evandrix,

278

Elenca tutti i tuoi emulatori:

emulator -list-avds

Esegui uno degli emulatori elencati con -avdflag:

emulator -avd @name-of-your-emulator

dove emulatorè sotto:

${ANDROID_SDK}/tools/emulator

2
Se si esegue da un terminale Linux, è necessario cdnella cartella $ ANDROID_SDK / tools o non funzionerà.
shimatai,

4
Grazie! Se usi emulatorpiù spesso perché non creare un alias: nano ~/.bashrc> aggiungi alias emulator='$ANDROID_HOME/tools/emulator', salva . ~/bashrce il gioco è fatto. (sostituisci ANDROID_HOMEcon la variabile corretta utilizzata o il percorso statico della cartella Android).
Samuel Elh,

3
Se viene generato il seguente errore: ERRORE: ./ android / qt / qt_setup.cpp: 28: libreria Qt non trovata in ../emulator/lib64/qt/lib, l'avvio dell'emulatore da $ ANDROID_HOME / tools è una soluzione alternativa. github.com/decosoftware/deco-ide/issues/289
tebanep

Se davvero non vai alla toolscartella, non funzionerà davvero. Ho ricevuto un errore PANIC: Missing emulator engine program for 'x86' CPU.. (Sono su Linux, OpenSUSE.) Dopo aver navigato toolse poi eseguito emulator -avd "{name}", ha funzionato.
pesho hristov,

100

Penso che il modo migliore per raggiungerlo tramite il terminale sia:

cd ~/Library/Android/sdk/tools

Per eseguire direttamente un determinato AVD:

./emulator -avd {AVD_NAME}

Per elencare i tuoi AVD usa:

./emulator -list-avds

Qual è il percorso per Windows?
qwertzguy,

9
Ah l'ho trovato: C: \ Users \ <utente> \ AppData \ Local \ Android \ sdk \ emulator
qwertzguy,

1
solo uno che ha funzionato per me, grazie - ma è comunque lì per aggiungerlo al tuo percorso o smth bc cd'ing lì ogni volta è un po 'una seccatura
John D

Cosa ha detto @JohnD: come includerei ./come parte del emulatorcomando in un percorso / alias?
DaveNOTDavid

In Linux il percorso per me è ~/Android/Sdk/emulator.
Tyler Collier,

26

Solo per aggiungere qui, ogni volta che si ottiene "errore: dispositivo offline" significa che la connessione con l'emulatore e il ponte adb è stata interrotta a causa del tempo impiegato all'avvio dell'emulatore.

Invece di riavviare l'emulatore a questo punto, prova di seguito due comandi che si arrestano e riavvia il bridge adb.

kill-server adb

adb start-server


In Windows, potrebbe anche essere necessario interrompere l'attività adb.exe utilizzando Task Manager.
Carl

25

Qui puoi controllare le opzioni per eseguire questo comando dalla riga di comando:

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

Ad esempio, lo uso in questo modo di seguito:

emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0

Ciao germangti, ho lo stesso problema. Ricevo "ABI validi: no ABI. Errore: non valido --abi x86 per il target selezionato.". Come hai risolto il problema?
Muneer Muhammed,

15

aprire CMD

  1. Apri il prompt dei comandi
  2. digitare il percorso dell'emulatore nel mio caso

C: \ ADT-fascio-windows-x86_64-20140702 \ SDK \ tools inserisci qui la descrizione dell'immagine

  1. scrivere "emulatore -avd emulatorname" nel mio caso

emulatore -avd AdilVD

inserisci qui la descrizione dell'immagine


13

Se si sta provando rigorosamente a eseguire l'emulatore dalla riga di comando, provare questo in OSX.

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

È possibile semplificarlo aggiungendo un alias al .bash_profile e inviandolo a un processo in background.

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

Fai sapere a Bash le modifiche.

source ~/.bash_profile

zsh: nessun file o directory: NAMEOFDEVICE
Ben Sinclair,

2
@Andy dovresti sostituire NAMEOFDEVICEcon il nome effettivo dell'emulatore. fai un emulator -list-avdsper ottenere un elenco di avd che hai nel tuo sistema.
nabn,

9

Apri il prompt dei comandi e vai a <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

Ecco "emulator"il comando utilizzato per aprire il tuo dispositivo virtuale Android .


9

Se hai Git Bash puoi aprire l'emulatore con un doppio clic, con alcune impostazioni iniziali (testato solo su Windows 10) :

  1. Apri Git Bash.
  2. Correre cd ~/AppData/Local/Android/sdk/emulator
  3. Esegui ./emulator -list-avdse prendi nota del nome dell'emulatore. MY_EMULATORper esempio.
  4. Apri Blocco note e aggiungi queste due righe (inserisci il nome dell'emulatore anziché MY_EMULATOR):

    cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR

  5. Salvare il file da qualche parte come myfile. sh . Puoi cambiare "myfile" come preferisci, ma è necessaria l'estensione .sh .

  6. Apri Git Bash nella directory in cui hai archiviato myfile.sh ed eseguilochmod +x myfile.sh . Ricorda di inserire il nome del file anziché myfile .

E questo è tutto! Da ora in poi, ogni volta che devi avviare quell'emulatore , individua myfile.sh e fai doppio clic su di esso e attendi l'avvio dell'emulatore Android!


5

(Linux) Nel terminale Copia e incolla e modificando i tre campi in blu

/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)

puoi visualizzare gli emulatori nella cartella home cd /home/Youuser/.android/avd/


5

Il android create avdcomando è obsoleto. Si consiglia ora di utilizzare avdmanagerinvece per avviare gli emulatori dalla riga di comando.

Innanzitutto, crea un nuovo emulatore se non ne esiste già uno:

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

Ciò presuppone che tu abbia già installato un'immagine di sistema X86 che corrisponde all'API 26 e che abbia installato le API di Google.

È quindi possibile avviare l'emulatore con emulator @MyEmulator.


4

Oggi supponendo che nel mio caso sia installato Android Studio (2.2) e solo 1 emulatore, potresti usare questo solo rivestimento

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

Se lo fai spesso, rendi più semplice:

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

Aggiungi un alias a ~.aliases

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

Richiama source ~/.profile ~/.aliasesprima di testarlo

La prossima volta solo $ androidup


3

elenco di nome avd disponibile su

.android / AVD

/ SDK_PATH / tools / emulator -netdelay none -netspeed full -avd "AVD_NAME"


3

In Windows, utilizzo questo script di PowerShell per avviarlo.

$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe"; 
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;

3
  1. Apri CMD
  2. Per ottenere tutto l'elenco dell'emulatore (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -list-avds)
  3. Scegli qualsiasi emulatore (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -avd Pixel_2_API_28)

1

Su Mac (e Linux credo), dopo aver creato il tuo AVD, puoi creare un alias: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

Nota : l'esecuzione dell'alias non bloccherà il tuo terminale, se lo desideri, rimuovi solo l'ultimo '&' .

Esegui da emulatorsolo ti darà un errore perché si aspetta che, nella tua posizione attuale, tu abbia: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'avviare l'emulatore.


1

Ho scritto questo semplice script di shell usando Zenity che ti consente di scegliere quale avd vuoi eseguire. Se non hai definito ANDROID_HOME, puoi semplicemente sostituirlo con il percorso completo dell'emulatore. Questo sarebbe facile da fare anche con select anziché Zenity, ma ho optato per Zenity poiché lo sto eseguendo dal menu dell'applicazione xfce (anche se un file .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

1

Esegui il primo emulatore disponibile:

~/Library/Android/sdk/tools/emulator -avd `~/Library/Android/sdk/tools/emulator -list-avds | awk '{print $1}'`

Faccio qualcosa di simile:~/Library/Android/sdk/tools/emulator -avd $(~/Library/Android/sdk/tools/emulator -list-avds | head -1)
Kamen Tsvetkov il

1

Sono in ritardo, qui, ma voglio condividere così potrebbe essere d'aiuto a qualcuno e anche a me quando mai necessario in seguito :), Quindi di seguito è il modo di aprire l'emulatore dalla riga di comando con un comando usando bash script. Sto usando MX Linux ma il processo è lo stesso su tutti i sistemi operativi

1- Prima controlla gli emulatori installati

emulator -list-avds

risulterà come di seguito

emulator -list-avds
Nexus_4_API_28
Pixel_2_API_28

2- apri qualsiasi editor di testo o codice e crea un nuovo file e scrivi come di seguito

#!/bin/sh
emulator -avd Nexus_4_API_28

Nexus_4_API_28 è l'emulatore che voglio aprire scrivendo il tuo che hai ottenuto dal primo passo

salva questo file con estensione .sh

3- Quindi, modificare le autorizzazioni sul file per renderlo eseguibile:

chmod u+x emu.sh

4- Ora apri l'emulatore eseguendo questo file di script bash con il seguente comando

./emu.sh

inserisci qui la descrizione dell'immagine


Questa risposta consente a me e al mio team di risparmiare molto tempo. Grazie
Sopia Alfred

0

Avvio dell'emulatore dalla riga di comando con l'aiuto di dns

Posizione del programma dell'emulatore: / Users / {{UserName}} / Library / Android / sdk / tools

  1. Controlla avd esistente: - emulator -list-avds

  2. Avvia emulatore con dns set / Users / {{UserName}} / Library / Android / sdk / tools / emulator -avd Pixel_API_26 -dns-server 8.8.8.8


0

Vedi sotto le istruzioni per Ubuntu Linux con zsh :

  1. Apri finestra terminale ( CTRL+ ALT+ T)
  2. Esegui il comando nano ~/.zshrcper modificare il tuo profilo
  3. Aggiungi le seguenti righe nel file aperto:
export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
  1. Salva il file ( CTRL+ O, CTRL+ X)
  2. Sorgere il profilo eseguendo il comando source ~/.zshrc o semplicemente disconnettersi e riconnettersi
  3. Test eseguendo il comando emulator -helpnel terminale

NOTA : dovrebbe essere lo stesso bashsostituendolo .zshrccon.bashrc

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.