Как запустить эмулятор Android из командной строки?

373

Я на Mac, работаю над разработкой Android с терминала. Я успешно создал проект HelloWorld и сейчас пытаюсь запустить его из командной строки в эмуляторе Android. Какая команда запускает эмулятор для моего проекта HelloWorld?

У меня уже есть инструменты Android и инструменты платформы в моем PATH.

Редактировать:

Как мне сказать эмулятору запустить мой проект HelloWorld из командной строки? Я уже построил проект с муравьем.

Тьерри Лам
источник
Соответствующие документы: создать с avdmanagerи запустить с emulator.
jchook

Ответы:

380

Я предполагаю, что вы создали свой проект и вам просто нужно его запустить, но у вас нет созданных AVD и вам нужно использовать командную строку для всех действий. Вы должны сделать следующее.

  1. Создайте новое виртуальное устройство (AVD) для нужной вам платформы. Если вам нужно использовать командную строку для создания AVD, вы можете вызвать android create avd -n <name> -t <targetID>там, где targetID - это необходимый уровень API. Если вы можете использовать графический интерфейс, просто введите, android avdи он запустит менеджер, где вы можете сделать то же самое. Вы можете узнать больше об управлении AVD через GUI и через командную строку .
  2. Запустите AVD с помощью команды emulator -avd <name>или через ранее запущенный графический интерфейс. Подождите, пока эмулятор полностью загрузится, это займет некоторое время. Вы можете прочитать о дополнительных опциях здесь .
  3. Теперь вам нужно установить приложение на свой AVD. Обычно во время разработки вы просто используете тот же Ant-скрипт, который вы использовали для создания проекта, просто выбираете installцель. Однако вы можете установить приложение вручную, используя команду adb install <path-to-your-APK>.
  4. Теперь переключитесь на эмулятор и запустите ваше приложение, как на любом обычном устройстве, через панель запуска. Или, в качестве альтернативы, вы можете использовать следующую команду: adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>. Например: adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld. Как предложил комментатор, вы также можете заменить org.sample.helloworld.HelloWorldв строке выше просто .HelloWorld, и это тоже будет работать.
Малькольм
источник
1
Ваш список из 4 баллов - это то, что я ищу. Когда я бегу adb install <path-to-your-APK>, я получаю error: device not found. Если я запускаю эмулятор в одной оболочке, а команду adb install - в другой, я получаю error: device offline. Как настроить эмулируемое виртуальное устройство?
Тьерри Лам
3
ОК, вернул информацию из предыдущей версии ответа. :) Если вы получаете сообщение о том, что устройство не в сети, я думаю, что вы просто не дали загрузить систему. Бесполезно пытаться отправлять команды в эмулятор, когда он показывает логотип Android, вам придется подождать, пока он покажет вам экран блокировки. И вы правы, что вам нужно использовать другой экземпляр оболочки для отправки команд на ваше устройство. Кстати, вы можете проверить текущее состояние устройства с помощью adb devicesкоманды.
Малкольм,
1
@ThomasW Спасибо, я добавил эту информацию в ответ.
Малкольм
1
@ L2G Если вы запускаете это как скрипт, то да, вы можете это сделать. Когда я писал ответ, я предполагал, что вы делаете все вручную, и в этом случае, конечно, вы можете подождать самостоятельно.
Малкольм
4
перезапустите adb-сервер: adb kill-server; adb start-serverесли ничего не появляетсяadb devices
evandrix
278

Перечислите все ваши эмуляторы:

emulator -list-avds

Запустите один из перечисленных эмуляторов с -avdфлагом:

emulator -avd @name-of-your-emulator

где emulatorнаходится под:

${ANDROID_SDK}/tools/emulator
azibi
источник
2
Если вы работаете с терминала Linux, вы должны cdвойти в папку $ ANDROID_SDK / tools, иначе она не будет работать.
shimatai
4
Спасибо! Если вы используете emulatorчаще, почему бы не создать псевдоним: nano ~/.bashrc> добавить alias emulator='$ANDROID_HOME/tools/emulator', сохранить, . ~/bashrcи все готово. (замените ANDROID_HOMEна правильную переменную или статический путь к папке Android).
Самуэль Эль
3
Если возникает следующая ошибка: ОШИБКА: ./ android / qt / qt_setup.cpp: 28: Библиотека Qt не найдена в ../emulator/lib64/qt/lib, запуск эмулятора из $ ANDROID_HOME / tools - это обходной путь. github.com/decosoftware/deco-ide/issues/289
tebanep
Если вы действительно не переходите к toolsпапке - она ​​действительно не будет работать. Я получил ошибку PANIC: Missing emulator engine program for 'x86' CPU.. (Я нахожусь на Linux, OpenSUSE.) После того, как я перешел на toolsи затем просто запустился emulator -avd "{name}"- тогда это работало.
Пешо Христов
100

Я думаю, что лучший способ добраться до него через терминал:

cd ~/Library/Android/sdk/tools

Чтобы запустить определенный AVD напрямую:

./emulator -avd {AVD_NAME}

Чтобы составить список своих AVD, используйте:

./emulator -list-avds
Али Сао
источник
Какой путь для Windows?
qwertzguy
9
Ах, нашел это: C: \ Users \ <user> \ AppData \ Local \ Android \ sdk \ emulator
qwertzguy
1
только один , который работал для меня, ТНХ - но в любом случае , чтобы добавить его в Уре пути или чего - л Ьс cd'ing там каждый раз это своего рода хлопот
John D
Что сказал @JohnD - как бы я включил ./как часть emulatorкоманды в путь / псевдоним?
DaveNOTDavid
В Linux путь для меня такой ~/Android/Sdk/emulator.
Тайлер Кольер
26

Просто добавьте сюда, всякий раз, когда вы получаете «ошибка: устройство отключено», это означает, что соединение с эмулятором и мостом adb было разорвано из-за времени, затраченного на запуск эмулятора.

Вместо перезапуска эмулятора на этом этапе попробуйте две команды, которые остановят и снова запустите adb bridge.

adb kill-server

adb start-server

ABDroids
источник
В Windows вам также может потребоваться убить задачу adb.exe с помощью диспетчера задач.
Карл
25

Здесь вы можете проверить параметры для выполнения этой команды через командную строку:

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

Например, я использую это следующим образом:

emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0
germangti
источник
Привет Germangti, у меня та же проблема. Я получаю «Действительные ABI: нет ABI. Ошибка: недействительный --abi x86 для выбранной цели.». Как вы решили проблему?
Muneer Мухаммед
15

открыть CMD

  1. Открыть командную строку
  2. введите путь эмулятора в моем случае

C: \ ADT-расслоение-окна-x86_64-20140702 \ SDK \ инструменты введите описание изображения здесь

  1. напиши "emulator -avd emulatorname" в моем случае

эмулятор -avd AdilVD

введите описание изображения здесь

Adiii
источник
13

Если вы строго пытаетесь запустить эмулятор из командной строки, попробуйте это в OSX.

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

Вы можете упростить его, добавив псевдоним в .bash_profile и отправив его в фоновое задание.

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

Сообщите Башу об изменениях.

source ~/.bash_profile
стог
источник
zsh: нет такого файла или каталога: NAMEOFDEVICE
Бен Синклер,
2
@ И вы должны заменить NAMEOFDEVICEреальное имя эмулятора. сделать, emulator -list-avdsчтобы получить список AVDS, которые у вас есть в вашей системе.
Наб
9

Откройте командную строку и перейдите к <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

Вот "emulator"команда, используемая для открытия вашего виртуального устройства Android .

Чандра Шекхар
источник
9

Если у вас есть Git Bash, вы можете открыть свой эмулятор двойным щелчком мыши с некоторой начальной настройкой (протестировано только в Windows 10) :

  1. Откройте Git Bash.
  2. Запустить cd ~/AppData/Local/Android/sdk/emulator
  3. Запустите ./emulator -list-avdsи запишите имя эмулятора. MY_EMULATORнапример.
  4. Откройте Блокнот и добавьте эти две строки (вместо имени вставьте имя вашего эмулятора MY_EMULATOR):

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

  5. Сохраните файл где-нибудь как myfile. ш . Вы можете изменить «myfile» так, как вам больше подходит, но расширение .sh необходимо.

  6. Откройте Git Bash в каталоге, где вы сохранили myfile.sh, и запустите chmod +x myfile.sh. Не забудьте указать имя файла вместо myfile .

И это все! С этого момента каждый раз, когда вам нужно запустить этот эмулятор, просто найдите myfile.sh и дважды щелкните по нему и дождитесь запуска вашего эмулятора Android!

romin21
источник
5

(Linux) В вашем терминале Copy & Paste и изменение трех полей синим цветом

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

Вы можете просмотреть эмуляторы в вашей домашней папке cd /home/Youuser/.android/avd/

Дэвид Хакро
источник
5

Команда android create avdустарела. Теперь рекомендуется использоватьavdmanager вместо этого для запуска эмуляторов из командной строки.

Сначала создайте новый эмулятор, если он еще не существует:

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

Это предполагает, что у вас уже установлен образ системы X86, соответствующий API 26, и установлены API Google.

Затем вы можете запустить эмулятор с помощью emulator @MyEmulator.

fractalwrench
источник
4

В настоящее время предполагается, что у вас установлена ​​Android Studio (2.2) в моем случае и только 1 эмулятор, вы можете использовать этот вкладыш

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

Если вы делаете это часто, сделайте это проще:

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

Добавить псевдоним для ~.aliases

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

Напомним, source ~/.profile ~/.aliasesперед тестированием

В следующий раз просто $ androidup

Хайме Агудо
источник
3

список авд имя доступно на

.android / AVD

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

rinkesh
источник
3

В Windows я использую этот скрипт PowerShell, чтобы запустить его.

$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe"; 
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;
Энди Ли
источник
3
  1. Открыть CMD
  2. Получить весь список эмуляторов (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -list-avds)
  3. Выберите любой эмулятор (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> эмулятор -avd Pixel_2_API_28)
Арман Джавед
источник
1

На Mac (и Linux, я думаю) после того, как вы создали AVD, вы можете создать псевдоним: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

Примечание : выполнение псевдонима не заблокирует ваш терминал, если вы хотите, просто удалите последний '&' .

Выполнить emulatorего самостоятельно даст вам ошибку, потому что он ожидает, что в вашей текущей позиции у вас есть: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'запустить эмулятор.

Ариэль Хименес
источник
1

Я написал этот простой сценарий оболочки, используя Zenity, который позволяет вам выбрать, какой AVD вы хотите запустить. Если вы не определили ANDROID_HOME, вы можете просто заменить его на полный путь к эмулятору. Это было бы легко сделать с помощью select вместо Zenity, но я выбрал Zenity, так как запускаю его из меню приложения xfce (хотя это файл .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

Запустите первый доступный эмулятор:

~/Library/Android/sdk/tools/emulator -avd `~/Library/Android/sdk/tools/emulator -list-avds | awk '{print $1}'`
ЗЫ
источник
Я делаю что-то подобное:~/Library/Android/sdk/tools/emulator -avd $(~/Library/Android/sdk/tools/emulator -list-avds | head -1)
Камень Цветков
1

Я опоздал, но хочу поделиться, так что, может быть, это поможет кому-то и мне, когда это понадобится позже :) Итак, ниже приведен способ открыть эмулятор из командной строки одной командой, используя скрипт bash. Я использую MX Linux, но процесс одинаков во всех операционных системах

1- Сначала проверьте установленные эмуляторы

emulator -list-avds

это будет выглядеть как ниже

emulator -list-avds
Nexus_4_API_28
Pixel_2_API_28

2- откройте любой текстовый редактор или редактор кода, создайте новый файл и напишите, как показано ниже

#!/bin/sh
emulator -avd Nexus_4_API_28

Nexus_4_API_28 - это эмулятор, который я хочу открыть, вы пишите свои, которые вы получили с первого шага

сохранить этот файл с расширением .sh

3- Затем измените права доступа к файлу, чтобы сделать его исполняемым:

chmod u+x emu.sh

4- Теперь откройте эмулятор, просто выполнив этот файл bash-скрипта с помощью следующей команды

./emu.sh

введите описание изображения здесь

javeedishaq
источник
Этот ответ сэкономит мне и моей команде много времени. Спасибо
Сопия Альфред
0

Запуск эмулятора из командной строки с помощью DNS

Расположение программы эмулятора: / Users / {{UserName}} / Library / Android / sdk / tools

  1. Проверьте существующие avd: - эмулятор -list-avds

  2. Запустите эмулятор с установленным dns / Users / {{Имя пользователя}} / Library / Android / sdk / tools / emulator -avd Pixel_API_26 -dns-server 8.8.8.8

Dayanand
источник
0

Ниже приведены инструкции для Ubuntu Linux с zsh :

  1. Открыть окно терминала ( CTRL+ ALT+ T)
  2. Команда Run nano ~/.zshrc для редактирования вашего профиля
  3. Добавьте следующие строки в открытый файл:
export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
  1. Сохранить файл ( CTRL+ O, CTRL+ X)
  2. Исходя из профиля, запустите команду source ~/.zshrc или просто выйдите и войдите снова
  3. Проверьте, запустив команду emulator -helpв терминале

ПРИМЕЧАНИЕ : должно быть то же самое bash, заменив .zshrcна.bashrc

Saikat
источник