Ich bin auf dem Mac und arbeite an der Android-Entwicklung vom Terminal aus. Ich habe das Projekt HelloWorld erfolgreich erstellt und jetzt versuche ich es über die Befehlszeile im Android-Emulator auszuführen. Mit welchem Befehl wird der Emulator für mein HelloWorld-Projekt ausgeführt?
Ich habe bereits Android-Tools und Plattform-Tools in meinem PFAD.
Bearbeiten:
Wie kann ich dem Emulator mitteilen, dass er mein HelloWorld-Projekt von der Befehlszeile aus ausführen soll? Ich habe das Projekt bereits mit Ant gebaut.
Ich gehe davon aus, dass Sie Ihr Projekt erstellt haben und nur starten müssen, aber Sie haben keine AVDs erstellt und müssen die Befehlszeile für alle Aktionen verwenden. Sie müssen folgendes tun.
Android create avd -n <name> -t <targetID>
aufrufen, wobei targetID die API-Ebene ist, die Sie benötigen. Wenn Sie die GUI verwenden können, geben Sie einfach Android avd
ein und der Manager wird gestartet, wo Sie dasselbe tun können. Weitere Informationen zur AVD-Verwaltung finden Sie über die GUI und über die Befehlszeile .emulator -avd <name>
oder über eine zuvor gestartete GUI aus. Warten Sie, bis der Emulator vollständig geladen ist. Es dauert einige Zeit. Über zusätzliche Optionen können Sie hier nachlesen.install
target aus. Sie können die Anwendung jedoch manuell mit dem Befehl adb install <path-to-your-APK>
installieren.adb Shell am start -a Android.intent.action.MAIN -n <package>/<activity class>
. Zum Beispiel: adb Shell am start -a Android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld
. Als Kommentator vorgeschlagen, können Sie auch org.sample.helloworld.HelloWorld
in der obigen Zeile durch nur .HelloWorld
ersetzen. Dies funktioniert auch.Listen Sie alle Ihre Emulatoren auf:
emulator -list-avds
Führen Sie einen der aufgeführten Emulatoren aus:
emulator @name-of-your-emulator
wo emulator
unter:
${Android_SDK}/tools/emulator
cd ~/Library/Android/sdk/tools
./emulator -avd {AVD_NAME}
./emulator -list-avds
Einfach hier hinzuzufügen, wenn Sie "Fehler: Gerät offline" erhalten, bedeutet dies, dass die Verbindung mit Emulator & Adb Bridge aufgrund der beim Emulatorstart erforderlichen Zeit unterbrochen wurde.
Anstatt den Emulator an dieser Stelle neu zu starten, versuchen Sie es mit zwei Befehlen, die adb bridge stoppen und erneut starten.
adb-Kill-Server
adb Start-Server
Hier können Sie die Optionen zum Ausführen dieses Befehls über die Befehlszeile überprüfen:
emulator -avd avd_name [-option [value]] ... [-qemu args]
Zum Beispiel verwende ich es wie folgt:
emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0
Wenn Sie streng versuchen, den Emulator von der Befehlszeile aus auszuführen, versuchen Sie es unter OSX.
"/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none
Sie können es vereinfachen, indem Sie dem .bash_profile einen Alias hinzufügen und ihn an einen Hintergrundjob senden.
alias Android='/Applications/Android\ Studio.app/sdk/tools/emulator <NAMEOFDEVICE> -netspeed full -netdelay none &'
Informieren Sie Bash über die Änderungen.
source ~/.bash_profile
Öffnen Sie die Eingabeaufforderung und gehen Sie zu <Android-Home>\sdk\tools>emulator -avd <AVD_NAME>
.
Hier ist "emulator"
der Befehl zum Öffnen Ihres Android Virtual Device .
(Linux) In Ihrem Terminal Copy & Paste und Ändern der drei Felder in blau
/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)
Sie können die Emulatoren in Ihrem Ordner home anzeigencd /home/Youuser/.Android/avd/
Der Befehl Android create avd
ist veraltet. Es wird jetzt empfohlen, avdmanager
zu verwenden, um Emulatoren über die Befehlszeile zu starten.
Erstellen Sie zuerst einen neuen Emulator, falls noch keiner vorhanden ist:
avdmanager create avd --name "MyEmulator" -k "system-images;Android-
26;google_apis;x86"
Dies setzt voraus, dass Sie bereits ein X86-System-Image installiert haben, das der API 26 entspricht, und dass die Google-APIs installiert sind.
Sie können den Emulator dann mit emulator @MyEmulator
starten.
Heutzutage haben Sie in meinem Fall Android Studio (2.2) und nur 1 Emulator installiert
export Android_SDK_ROOT=~/Library/Android/sdk/ && emulator '@'`emulator -list-avds`
Wenn Sie dies häufig tun, machen Sie es einfacher:
$ echo 'export Android_SDK_ROOT=~/Library/Android/sdk/' >> ~/.profile
Fügen Sie einen Alias zu ~.aliases
hinzu.
alias androidup="emulator '@'`emulator -list-avds`"
Rufen Sie source ~/.profile ~/.aliases
ab, bevor Sie es testen
Nächstes Mal nur $ androidup
Wenn Sie über Git Bash verfügen, können Sie Ihren Emulator mit einem Doppelklick öffnen, mit einigen Ersteinstellungen (nur in Windows 10 getestet) :
cd ~/AppData/Local/Android/sdk/emulator
ausführen./emulator -list-avds
aus und notieren Sie sich den Namen des Emulators. MY_EMULATOR
zum Beispiel.Öffnen Sie den Editor und fügen Sie diese beiden Zeilen hinzu (fügen Sie den Namen Ihres Emulators anstelle von MY_EMULATOR
ein):
cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR
Speichern Sie die Datei an einem beliebigen Ort als myfile. sh . Sie können "myfile" nach Belieben ändern, aber die Erweiterung .sh wird benötigt.
chmod +x myfile.sh
aus. Vergessen Sie nicht, den Namen Ihrer Datei anstelle von myfile einzugeben.Und das ist es! Von jetzt an müssen Sie jedes Mal, wenn Sie den Emulator starten müssen, Ihre myfile.sh suchen, darauf doppelklicken und warten, bis Ihr Android-Emulator startet.
avd name liste auf
.Android/avd
/ SDK_PATH/tools/emulator -netdelay none -netspeed full -avd "AVD_NAME"
Auf einem Mac (und Linux, denke ich), können Sie, nachdem Sie Ihre AVD erstellt haben, einen Alias eingeben: alias run-Android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'
Hinweis : Die Ausführung des Alias wird Ihr Terminal nicht sperren. Wenn Sie dies wünschen, entfernen Sie einfach das letzte '&'.
Führen Sie emulator
aus, und es wird ein Fehler angezeigt, da er erwartet, dass Sie in Ihrer aktuellen Position Folgendes haben: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'
, um den Emulator zu starten.
In Windows verwende ich dieses PowerShell-Skript, um es zu starten.
$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe";
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;
Starten des Emulators von der Befehlszeile aus mit der dns-Hilfe
Speicherort des Emulatorprogramms:/Benutzer/{{Benutzername}}/Library/Android/sdk/tools
Überprüfen Sie das vorhandene avd: - Emulator -list-avds
Starten Sie den Emulator mit dns set/Users/{{UserName}}/Library/Android/sdk/tools/emulator -avd
Ich habe dieses einfache Shell-Skript mit Zenity geschrieben, mit dem Sie auswählen können, welches AVD Sie ausführen möchten. Wenn Sie nicht Android_HOME definiert haben, können Sie dies einfach durch den vollständigen Pfad zum Emulator ersetzen. Dies ist mit select anstelle von Zenity auch einfach zu tun, aber ich habe mich für Zenity entschieden, da ich es von der xfce-application menu (über eine .desktop-Datei).
#!/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
Führen Sie den ersten verfügbaren Emulator aus:
~/Library/Android/sdk/tools/emulator -avd `~/Library/Android/sdk/tools/emulator -list-avds | awk '{print $1}'`