Як запустити емулятор Android з командного рядка?


372

Я на 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, який вам потрібен. Якщо ви можете використовувати GUI, просто введіть 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

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 / є вирішенням. github.com/decosoftware/deco-ide/isissue/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: \ Користувачі \ <користувач> \ AppData \ Місцеві \ Android \ sdk \ емулятор
qwertzguy

1
Тільки той, хто працював на мене, thx - але чи все-таки можна додати його до ур-шляху або smth bc cd'ing там щоразу, це свого роду клопоту
Джон Д

Що сказав @JohnD - як би я включив ./як частину emulatorкоманди в шлях / псевдонім?
DaveNOTDavid

В Linux шлях для мене такий ~/Android/Sdk/emulator.
Тайлер Колліер

26

Просто додайте сюди, коли ви отримуєте "помилка: пристрій офлайн" означає, що зв’язок з емулятором та мостом adb був розірваний через час, затрачений під час запуску емулятора.

Замість того, щоб перезапустити емулятор в цей момент, спробуйте нижче дві команди, яка зупиняє та запускає adb міст ще раз.

adb kill-сервер

adb start-сервер


У 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, у мене те саме питання. Я отримую "Дійсні ABI: немає ABI. Помилка: Недійсна --abi x86 для вибраної цілі." Як ви вирішили проблему?
Муньєр Мухаммед

15

відкрити CMD

  1. Відкрити командний рядок
  2. введіть шлях емулятора в моєму випадку

C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ tools введіть тут опис зображення

  1. в моєму випадку напишіть "емулятор -avd emulatorname"

емулятор -avd AdilVD

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


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
Ben Sinclair

2
@Andy ви повинні замінити NAMEOFDEVICEфактичною назвою емулятора. зробіть, emulator -list-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" як найкраще, але розширення .sh потрібно.

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

І це все! Відтепер кожен раз, коли вам потрібно запустити цей емулятор, просто знайдіть свій файл myfile.sh та двічі клацніть на ньому та чекайте запуску емулятора Android!


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.


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

список імені avd, доступного на

.android / avd

/ SDK_PATH / інструменти / емулятор -netdelay none -netspeed full -avd "AVD_NAME"


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: \ Користувачі \ DJango \ AppData \ Local \ Android \ sdk \ emulator> емулятор -list-avds)
  3. Виберіть будь-який емулятор (C: \ Користувачі \ 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)
Камен Цвєтков

0

Запуск емулятора з командного рядка з довідкою dns

Місцезнаходження програми емулятора: / Користувачі / {{UserName}} / Бібліотека / Android / sdk / інструменти

  1. Перевірте наявний avd: - емулятор -list-avds

  2. Запустіть емулятор за допомогою dns set / Users / {{UserName}} / Library / Android / sdk / tools / emulator -avd Pixel_API_26 -dns-server 8.8.8.8


0

Дивіться нижче інструкції для Ubuntu Linux з zsh :

  1. Відкрити вікно терміналу ( CTRL+ ALT+ T)
  2. Запустіть команду 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


0

Я запізнююсь, але хочу поділитися таким чином, може бути, це допоможе комусь і мені теж, коли коли-небудь знадобиться пізніше :), Отже нижче - спосіб відкрити емулятор з командного рядка за допомогою однієї команди за допомогою bash script. Я використовую 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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.