Jak uruchomić emulator Androida z wiersza poleceń?
Jestem na Macu, pracuję nad rozwojem Androida z terminala. Udało mi się stworzyć projekt HelloWorld i teraz próbuję go uruchomić z wiersza poleceń w emulatorze Androida. Które polecenie uruchamia emulator dla mojego projektu HelloWorld?
Mam już narzędzia i platformy Android na swojej drodze.
Edit:
Jak powiedzieć emulatorowi, aby uruchomił mój projekt HelloWorld z linii poleceń? Już zbudowałem projekt z ant.
16 answers
Zakładam, że zbudowałeś swój projekt i po prostu musisz go uruchomić, ale nie masz żadnych avd stworzonych i musisz użyć linii poleceń dla wszystkich działań. Musisz wykonać następujące czynności.
- Utwórz nowe urządzenie wirtualne (AVD) dla potrzebnej platformy. Jeśli musisz użyć wiersza poleceń do tworzenia AVD, możesz wywołać
android create avd -n <name> -t <targetID>
gdzie targetID jest poziomem API, którego potrzebujesz. Jeśli możesz użyć GUI, po prostu wpiszandroid avd
i uruchomi się menedżer, w którym możesz zrobić to samo. Możesz dowiedz się więcej o zarządzaniu AVD poprzez GUI i poprzez linię komend. - Uruchom AVD za pomocą polecenia
emulator -avd <name>
lub wcześniej uruchomionego GUI. Poczekaj, aż emulator w pełni się załaduje, zajmuje to trochę czasu. Możesz przeczytać o dodatkowe opcje tutaj . - Teraz musisz zainstalować aplikację na swoim AVD. Zazwyczaj podczas tworzenia projektu używasz tego samego skryptu Ant, którego użyłeś do zbudowania projektu, po prostu wybierz
install
target. Jednak można zainstaluj aplikację ręcznie za pomocą poleceniaadb install <path-to-your-APK>
. - teraz przełącz się na emulator i uruchom aplikację jak na każdym normalnym urządzeniu, przez launcher. Alternatywnie możesz użyć następującego polecenia:
adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>
. Na przykład:adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld
. Jak zasugerował komentator, możesz również zastąpićorg.sample.helloworld.HelloWorld
w powyższej linii tylko.HelloWorld
, i to też będzie działać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 01:22:47
Lista wszystkich emulatorów:
emulator -list-avds
Uruchom jeden z wymienionych emulatorów:
emulator @name-of-your-emulator
Gdzie emulator
jest pod:
${ANDROID_SDK}/tools/emulator
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-26 14:33:10
Myślę, że najlepszym sposobem, aby dotrzeć do niego przez terminal jest:
cd ~/Library/Android/sdk/tools
Aby uruchomić pewne AVD bezpośrednio:
./emulator -avd {AVD_NAME}
Aby wyświetlić listę AVDs użyj :
./emulator -list-avds
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-19 21:40:02
Aby dodać tutaj, za każdym razem, gdy pojawi się "błąd: urządzenie offline" oznacza, że połączenie z emulatorem i mostkiem adb zostało przerwane ze względu na czas potrzebny na uruchomienie emulatora.
Zamiast ponownie uruchamiać emulator w tym momencie spróbuj poniżej dwóch komend, które zatrzymują i ponownie uruchamiają mostek adb.
ADB kill-server
Adb start-server
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-27 03:35:42
Tutaj Możesz sprawdzić opcje wykonania tego polecenia za pomocą wiersza poleceń:
emulator -avd avd_name [-option [value]] ... [-qemu args]
Na przykład, używam go tak poniżej:
emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-01 03:33:40
Otwórz CMD
- Otwórz Wiersz Polecenia
- wpisz ścieżkę emulatora w moim przypadku
- Napisz "emulator - avd emulatorname" w moim przypadku
Emulator-avd AdilVD
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-19 03:31:01
Jeśli próbujesz uruchomić emulator z linii poleceń, spróbuj to zrobić w systemie OSX.
"/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none
Możesz to uprościć dodając alias do .bash_profile i wysłanie go do zadania w tle.
alias android='/Applications/Android\ Studio.app/sdk/tools/emulator <NAMEOFDEVICE> -netspeed full -netdelay none &'
Poinformuj Basha o zmianach.
source ~/.bash_profile
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-28 21:26:49
Otwórz wiersz polecenia i przejdź do <android-Home>\sdk\tools>emulator -avd <AVD_NAME>
Tutaj "emulator"
jest komenda używana do otwarcia wirtualnego urządzenia z Androidem .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-01 04:18:01
(Linux) W terminalu Kopiuj i wklej oraz zmieniając trzy pola na niebiesko
/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)
Możesz wyświetlić emulatory w folderze home cd / home / Youuser/.android / avd /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-30 18:44:17
Obecnie jak masz zainstalowane Android Studio (2.2) w moim przypadku i tylko 1 emulator możesz użyć tego jednego linera
export ANDROID_SDK_ROOT=~/Library/Android/sdk/ && emulator '@'`emulator -list-avds`
Jeśli robisz to często, Ułatw to:
$ echo 'export ANDROID_SDK_ROOT=~/Library/Android/sdk/' >> ~/.profile
Dodaj alias do ~.aliases
alias androidup="emulator '@'`emulator -list-avds`"
Przypomnij sobie source ~/.profile ~/.aliases
przed przetestowaniem
Następnym razem tylko $ androidup
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-14 14:11:26
Polecenie android create avd
jest przestarzałe. Teraz zaleca się stosowanie avdmanager
zamiast tego uruchamiać emulatory z linii poleceń.
Najpierw Utwórz nowy emulator, jeśli jeszcze nie istnieje:
avdmanager create avd --name "MyEmulator" -k "system-images;android-
26;google_apis;x86"
Zakłada to, że masz już zainstalowany obraz systemu X86, który pasuje do API 26 i ma zainstalowane interfejsy API Google.
Można następnie uruchomić emulator za pomocą emulator @MyEmulator
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 13:43:50
Lista nazw avd dostępnych na
.android / avd
/ SDK_PATH / tools / emulator-netdelay none-netspeed full-avd "AVD_NAME"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-17 05:51:35
W windows, używam tego skryptu PowerShell, aby go uruchomić.
$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe";
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-24 01:16:25
Uruchamianie emulatora z linii poleceń z Pomocą dns
Lokalizacja programu emulatora: / Users / {{UserName}} / Library / Android / sdk / tools
-
Sprawdź istniejące avd :- emulator-list-avds
-
Uruchom emulator z zestawem dns /Users / {{UserName}} / Library / Android / sdk / tools /emulator-avd Pixel_API_26-DNS-server 8.8.8.8
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-09 06:15:21
Na Macu (i Linuksie myślę), po utworzeniu AVD, możesz utworzyć alias:
alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'
Uwaga: wykonanie aliasu nie zablokuje twojego terminala, jeśli chcesz, po prostu usuń ostatni '&'.
Run emulator
it self da ci błąd, ponieważ oczekuje, że w bieżącej pozycji masz: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'
aby uruchomić emulator.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-18 21:05:41
Napisałem ten prosty skrypt powłoki używając Zenity, który pozwala wybrać, który avd chcesz uruchomić. Jeśli nie masz zdefiniowanego ANDROID_HOME, możesz po prostu zastąpić go pełną ścieżką do emulatora. Byłoby to łatwe do zrobienia z select zamiast Zenity również, ale zdecydowałem się na Zenity ponieważ jestem uruchomiony z menu Xfce-application (choć .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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-18 09:04:27