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

Android SDK включает эмулятор устройства Android – виртуальное устройство, которое работает на вашем компьютере. Эмулятор Android позволяет разрабатывать и тестировать приложения Android без использования физического устройства.

На этой странице описаны функции командной строки, которые можно использовать с эмулятором Android. Информацию об использовании интерфейса эмулятора Android можно найти в статье Как запускать приложения в эмуляторе Android.

Запустите эмулятор

Используйте команду emulator, чтобы запустить эмулятор, вместо того чтобы запускать проект или запускать его через Менеджер AVD.

Ниже приведен основной синтаксис командной строки для запуска виртуального устройства из терминала:

emulator -avd avd_name [ {-option [value]} … ]

Или

emulator @avd_name [ {-option [value]} … ]

Например, если вы запустите эмулятор из Android Studio на компьютере Mac, командная строка по умолчанию будет выглядеть примерно так:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout 300

Обратите внимание, что аргументы -qt-hide-window -grpc-use-token -idle-grpc-timeout 300 используются только для запуска окна эмулятора в Android Studio. Если вы хотите запустить эмулятор в отдельном окне, не используйте дополнительные параметры.

Параметры запуска можно задать только при запуске эмулятора, но не после этого.

Чтобы получить список имен AVD, введите следующую команду:

emulator -list-avds

Этот вариант позволяет отобразить список названий AVD из домашнего каталога Android. Вы можете переопределить домашний каталог по умолчанию, задав переменную среды ANDROID_SDK_HOME, которая указывает на корневой каталог, где хранятся все конфигурации и контент AVD.

Вы можете задать переменную среды в окне терминала перед запуском виртуального устройства или через настройки пользователя в операционной системе. Например, в файле .bashrc в Linux.

Чтобы остановить эмулятор Android, закройте окно эмулятора.

Как установить приложение

Приложение можно установить на виртуальное устройство не только через Android Studio или интерфейс эмулятора, но и с помощью утилиты adb.

Чтобы использовать adb для установки, запуска и тестирования приложения, выполните следующие общие действия:

  1. Создайте сборку приложения и упакуйте его в APK-файл, как описано в разделе Как создать сборку и запустить приложение.
  2. Запустите эмулятор из командной строки, как описано в предыдущем разделе, используя необходимые параметры запуска.
  3. Установите приложение с помощью adb.
  4. Запустите и протестируйте приложение в эмуляторе.
    Во время работы эмулятора вы можете использовать консоль эмулятора, чтобы выполнять необходимые команды.

Чтобы удалить приложение, выполните те же действия, что и на устройстве Android.

Виртуальное устройство сохраняет приложение и его данные состояния после перезапуска в разделе диска с пользовательскими данными (userdata-qemu.img). Чтобы удалить эти данные, запустите эмулятор с параметром -wipe-data или очистите данные в Менеджере AVD. Подробнее о разделе с пользовательскими данными и других типах хранилища рассказывается в следующем разделе.

Примечание. Утилита adb воспринимает виртуальное устройство как физическое устройство. По этой причине вам может понадобиться использовать флаг -d с некоторыми распространенными командами adb, например install. Флаг -d позволяет указать, какое из нескольких подключенных устройств должно быть целью команды. Если вы не укажете -d, эмулятор будет ориентироваться на первое устройство в списке.

Каталоги и файлы по умолчанию

Эмулятор использует связанные файлы, из которых наиболее важны системные и информационные каталоги AVD. При указании параметров командной строки полезно понимать структуру каталогов и файлов эмулятора, хотя обычно изменять каталоги или файлы по умолчанию не требуется.

Эмулятор Android использует гипервизор QEMU.

Системный каталог AVD

Системный каталог содержит образы системы Android, которые эмулятор использует для имитации операционной системы. В этом каталоге находятся предназначенные для определенной платформы файлы, доступные только для чтения, которые используются всеми виртуальными устройствами Android одного типа, включая уровень API, архитектуру ЦП и вариант Android. По умолчанию используются следующие местоположения:

  • macOS и Linux – ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Windows – C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\\

Место:

  • apiLevel – это числовой уровень API или буква, обозначающая предварительную версию. Например, android-V указывает на предварительную версию Android VanillaIceCream. После выпуска он получил уровень API 35, обозначенный как android-35.
  • variant – это название, соответствующее определенным функциям, реализованным системным образом. Примеры: google_apis или android-wear.
  • arch – целевая архитектура ЦП. Пример:x86.

Чтобы указать другой системный каталог для AVD, используйте параметр -sysdir.

Эмулятор считывает из системного каталога следующие файлы:

Таблица 1. Файлы системного каталога, считываемые эмулятором Android

Файл Описание Возможность указать другой файл
kernel-ranchu Образ двоичного ядра для AVD. -kernel
ramdisk.img Образ загрузочного раздела. Это подмножество system.img, загружаемое ядром изначально до подключения образа системы. Обычно он содержит несколько исполняемых файлов и скриптов инициализации. -ramdisk
system.img Начальная версия образа системы, доступная только для чтения. В частности, раздел, содержащий системные библиотеки и данные, соответствующие уровню API и варианту. -system
userdata.img Исходная версия раздела данных, которая в эмулируемой системе обозначается как data/ и содержит все доступные для записи данные для виртуального устройства Android. Эмулятор использует этот файл, когда вы создаете новое виртуальное устройство Android или используете параметр ‑wipe-data. Подробную информацию можно найти в описании файла userdata-qemu.img в следующем разделе. -initdata

Каталог данных AVD

Каталог данных AVD, также называемый каталогом контента, относится к определенному экземпляру AVD и содержит все изменяемые данные для AVD.

Местоположение по умолчанию – следующее, где name – название AVD:

  • macOS и Linux – ~/.android/avd/name.avd/
  • Windows 10 и более поздние версии. C:\Users\user\.android\name.avd\\

Чтобы указать другой каталог данных AVD, используйте параметр -datadir.

В таблице ниже перечислены наиболее важные файлы, которые находятся в этом каталоге.

Таблица 2. Важные файлы в каталоге данных AVD

Файл Описание Возможность указать другой файл
userdata-qemu.img

Контент раздела данных, который в эмулируемой системе отображается как data/. Когда вы создаете новое виртуальное устройство Android или используете параметр -wipe-data, чтобы сбросить настройки виртуального устройства Android до заводских, эмулятор копирует файл userdata.img из системного каталога, чтобы создать этот файл.

Каждый экземпляр виртуального устройства использует образ пользовательских данных с возможностью записи для хранения данных, относящихся к пользователю и сеансу. Например, в нем хранятся уникальные данные пользователя об установленных приложениях, настройки, базы данных и файлы. У каждого пользователя есть свой каталог ANDROID_SDK_HOME, в котором хранятся каталоги данных для созданных им виртуальных устройств Android. У каждого AVD есть один файл userdata-qemu.img.

-data
cache.img Образ раздела кеша, который в эмулируемой системе отображается как cache/. При первом создании AVD или использовании параметра -wipe-data он пуст. В ней хранятся временные файлы, которые скачивает диспетчер загрузок и иногда система. Например, браузер использует его для кеширования скачанных веб-страниц и изображений во время работы эмулятора. Когда вы выключите виртуальное устройство, файл будет удален. Чтобы сохранить файл, используйте параметр -cache. -cache
sdcard.img

(Необязательно.) Образ раздела SD-карты, который позволяет имитировать SD-карту на виртуальном устройстве. Вы можете создать файл образа SD-карты в AVD Manager или с помощью инструмента mksdcard. Файл хранится на компьютере разработчика и должен быть загружен при запуске.

При определении AVD в Менеджере AVD можно выбрать файл SD-карты, управляемый автоматически, или файл, созданный с помощью инструмента mksdcard. Файл sdcard.img, связанный с AVD, можно посмотреть в Менеджере AVD. Параметр -sdcard переопределяет файл SD-карты, указанный в AVD. Обратите внимание, что этот вариант не подойдет для компьютеров Mac с чипом Apple Silicon.

Вы можете просматривать, отправлять, копировать и удалять файлы на смоделированной SD-карте, используя интерфейс эмулятора или утилиту adb, когда виртуальное устройство запущено. Нельзя удалить смоделированную SD-карту из работающего виртуального устройства.

Чтобы скопировать файлы на SD-карту до ее загрузки, подключите файл образа как устройство петли, а затем скопируйте файлы. Или используйте утилиту, например пакет mtools, чтобы скопировать файлы непосредственно в образ.

Эмулятор воспринимает файл как набор байтов, поэтому формат SD-карты не имеет значения.

Параметр -wipe-data не влияет на этот файл. Если вы хотите очистить файл, удалите его и создайте заново с помощью Менеджера AVD или инструмента mksdcard. При изменении размера файла он удаляется и создается новый.

-sdcard

Как посмотреть список каталогов и файлов, используемых эмулятором

Узнать, где находятся файлы, можно двумя способами:

  • Используйте параметр -verbose или -debug init при запуске эмулятора из командной строки. Посмотрите на результат.
  • Чтобы посмотреть каталог по умолчанию, используйте команду emulator -help-option. Пример:
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

Параметры запуска из командной строки

В этом разделе перечислены параметры, которые можно указать в командной строке при запуске эмулятора.

Примечание. Эмулятор Android постоянно совершенствуется, чтобы повысить его надежность. Чтобы узнать статус проблем, связанных с различными параметрами командной строки, или сообщить об ошибке, перейдите на сайт Android Issue Tracker.

Популярные настройки

В таблице ниже перечислены параметры командной строки, которые могут вам пригодиться:

Таблица 3. Часто используемые параметры командной строки

Параметр командной строки Описание
Быстрая загрузка
-no-snapshot-load Выполняет холодную загрузку и сохраняет состояние эмулятора при выходе.
-no-snapshot-save Выполняет быструю загрузку, если это возможно, но не сохраняет состояние эмулятора при выходе.
-no-snapshot Полностью отключает функцию быстрого запуска и не загружает и не сохраняет состояние эмулятора.
Аппаратное обеспечение
-camera-back mode
-camera-front mode

Устанавливает режим эмуляции для фронтальной или задней камеры. Это переопределяет любые настройки камеры в AVD.

mode может принимать следующие значения:

  • emulated – эмулятор имитирует камеру в программном обеспечении.
  • environment – эмулятор использует виртуальную сцену, определенную в файле конфигурации среды AVD.
  • webcamn – эмулятор использует веб-камеру, подключенную к компьютеру разработчика и указанную по номеру. Чтобы получить список веб-камер, используйте параметр -webcam-list. Пример: webcam0.
  • imagefile:filename – эмулятор использует файл изображения для вывода камеры.
  • videofile:filename – эмулятор использует видео для вывода с камеры.
  • image360:filename – эмулятор использует для вывода камеры панорамное изображение в равнопромежуточной проекции. Доступно в версии 36.6.4 и более поздних.
  • none – отключает камеру на виртуальном устройстве.

Пример:

emulator @Pixel8_API_34 -camera-back webcam0
-webcam-list Список веб-камер на компьютере разработчика, доступных для эмуляции. Пример:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

В примере первое значение webcam0 – это имя, которое вы используете в командной строке. Второе значение webcam0 – это имя, которое ОС использует на компьютере разработчика. Второе название зависит от ОС.

В SDK Tools версии 25.2.4 и более поздних название AVD обязательно.

Образы дисков и память
-memory size

Указывает размер физической ОЗУ в диапазоне от 1536 до 8192 МБ. Пример:

emulator @Pixel8_API_34 -memory 2048

Это значение переопределяет настройку AVD.

-sdcard filepath

Указывает название файла и путь к образу раздела SD-карты. Пример:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

Если файл не найден, эмулятор все равно запустится, но без SD-карты. Команда возвращает предупреждение No SD Card Image (Нет образа SD-карты).

Если вы не укажете этот параметр, по умолчанию будет использоваться значение sdcard.img в каталоге данных, если только в AVD не указано другое значение. Подробнее о каталоге данных AVD…

-wipe-data

Удаляет пользовательские данные и копирует данные из исходного файла. Этот вариант очищает данные виртуального устройства и возвращает его в состояние, в котором оно было при первом определении. Все установленные приложения и настройки будут удалены. Пример:

emulator @Pixel8_API_34 -wipe-data

По умолчанию файл пользовательских данных – userdata-qemu.img, а исходный файл данных – userdata.img. Оба этих файла находятся в каталоге данных. Параметр -wipe-data не влияет на файл sdcard.img. Подробнее о пользовательских данных см. в разделе Общие сведения о каталогах и файлах по умолчанию.

Отладка
-debug tags

Включает или отключает показ сообщений отладки для одного или нескольких тегов. Если тегов несколько, перечислите их через пробел, запятую или столбец. Пример:

$ emulator @Pixel8_API_34 -debug init,metrics

Чтобы отключить тег, поставьте перед ним дефис (-). Например, следующий вариант позволяет показывать все сообщения отладки, кроме тех, которые связаны с сетевыми сокетами и показателями:

-debug all,-socket,-metrics

Чтобы получить список тегов и их описаний, используйте параметр -help-debug-tags. Пример:

emulator -help-debug-tags
-debug-tag
-debug-no-tag

Включает определенный тип сообщений отладки. Чтобы отключить тип отладочного сообщения, используйте форму no. Пример:

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

Чтобы посмотреть список тегов, используйте команду emulator -help-debug-tags.

-logcat logtags

Позволяет отображать сообщения Logcat для одного или нескольких тегов и записывать их в окне терминала. Например, следующая команда включает сообщения об ошибках от всех компонентов:

emulator @Pixel8_API_34 -logcat *:e

logtags использует тот же формат, что и команда adb logcat logtags. Подробнее: adb logcat -help. Это список фильтров журналов, разделенных пробелами или запятыми, в формате componentName:logLevel. componentName – это либо подстановочный знак (*), либо название компонента, например ActivityManager, SystemServer, InputManager или WindowManager.

logLevel – одно из следующих значений:

  • v – подробный
  • d – отладка
  • i – информативный
  • w – уровень журнала "Предупреждение".
  • e – ошибка
  • s – без звука

В следующем примере показаны сообщения компонента GSM на информационном уровне журнала:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

Вы также можете перенаправить те же или другие сообщения журнала в терминал с помощью adb.

Подробнее о Logcat и adb рассказывается в статьях Инструмент командной строки Logcat, Как просматривать и записывать журналы с помощью Logcat, Класс Log и Как выполнять команды adb.

-show-kernel

Показывает сообщения отладки ядра в окне терминала. Пример:

emulator @Pixel8_API_34 -show-kernel

Этот вариант можно использовать, чтобы проверить правильность процесса загрузки.

-verbose

Выводит сообщения инициализации эмулятора в окне терминала. Пример:

emulator @Pixel8_API_34 -verbose

В нем показывается, какие файлы и настройки выбраны при запуске виртуального устройства, определенного в AVD. Этот параметр аналогичен параметру -debug-init.

Сеть
-dns-server servers

Использует указанные DNS-серверы. servers – это список из не более четырех имен или IP-адресов DNS-серверов, разделенных запятыми. Пример:

emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

По умолчанию эмулятор пытается обнаружить используемые вами DNS-серверы и настраивает специальные псевдонимы в эмулируемой сети брандмауэра, чтобы система Android могла напрямую подключаться к серверам. Используйте параметр -dns-server, чтобы указать другой список DNS-серверов.

-http-proxy proxy

Устанавливает все TCP-подключения через указанный прокси-сервер HTTP/HTTPS. Если эмулятору необходимо подключиться к интернету через прокси-сервер, вы можете использовать этот параметр или переменную среды http_proxy, чтобы настроить переадресацию. Пример:

emulator @Pixel8_API_34 -http-proxy myserver:1981

Поле proxy может иметь одно из следующих значений:

http://server:port
http://username:password@server:port

Префикс http:// можно не указывать.

Если этот параметр не указан, эмулятор ищет переменную среды http_proxy и автоматически использует любое значение, соответствующее формату proxy. Подробнее о том, как использовать эмулятор с прокси-сервером…

Примечание. Если вы запускаете несколько эмуляторов, этот флаг нужно задать при первом запуске.

-netdelay delay

Задает эмуляцию задержки сети с одним из следующих значений delay в миллисекундах:

  • gsm – GSM/CSD (минимум 150, максимум 550).
  • hscsd – HSCSD (мин. 80, макс. 400).
  • gprsGPRS (минимум 35, максимум 200).
  • edge – EDGE/EGPRS (минимум 80, максимум 400).
  • umts – UMTS/3G (минимум 35, максимум 200).
  • hsdpa – HSDPA (мин. 0, макс. 0).
  • lte – LTE (минимум 0, максимум 0).
  • evdo – EVDO (мин. 0, макс. 0).
  • none – нет задержки (значение по умолчанию; минимальное и максимальное значения равны 0).
  • num – точная задержка.
  • min:max – позволяет задать минимальную и максимальную задержку.

Пример:

emulator @Pixel8_API_34 -netdelay gsm

Эмулятор поддерживает ограничение пропускной способности сети и более высокую задержку подключения. Вы можете задать его в конфигурации скина или с помощью параметров ‑netspeed и -netdelay.

Примечание. Этот параметр применяется к Ethernet и мобильной сети.

-netfast

Отключает ограничение пропускной способности сети. Пример:

emulator @Pixel8_API_34 -netfast

Этот вариант аналогичен указанию параметра -netspeed full -netdelay none. Это значения по умолчанию.

Примечание. Этот параметр применяется к Ethernet и мобильной сети.

-netspeed speed

Задает эмуляцию скорости сети. Указывает максимальную скорость загрузки и скачивания в сети с помощью одного из следующих значений speed в кбит/с:

  • gsm - GSM/CSD (входящая: 14,4, исходящая: 14,4).
  • hscsd - HSCSD (входящая: 14,4, исходящая: 57,6).
  • gprs – GPRS (скорость передачи: 28,8 Кбит/с, скорость приема: 57,6 Кбит/с).
  • edge – EDGE/EGPRS (скорость передачи: 473, 6 Кбит/с).
  • umts – UMTS/3G (скорость передачи: 384,0 Кбит/с, скорость скачивания: 384,0 Кбит/с).
  • hsdpa – HSDPA (скорость передачи: 5760,0, скорость приема: 13 980,0).
  • lte – LTE (скорость загрузки: 58 000, скорость скачивания: 173 000).
  • evdo – EVDO (скорость передачи: 75 000, скорость приема: 280 000).
  • full – ограничение не задано (по умолчанию) (вверх: 0,0, вниз: 0,0).
  • num – указывает скорость загрузки и скачивания.
  • up:down – позволяет задать отдельные значения скорости загрузки и скачивания.

Пример:

emulator @Pixel8_API_34 -netspeed edge

Эмулятор поддерживает ограничение пропускной способности сети и более высокую задержку подключения. Вы можете задать его в конфигурации скина или с помощью параметров ‑netspeed и -netdelay.

Примечание. Этот параметр применяется к Ethernet и мобильной сети.

-netsim-args arguments

Передает дополнительные аргументы симулятору сети (netsim). arguments – это список флагов, разделенных пробелами.

Например, чтобы включить захват пакетов и перенаправить ведение журнала в stderr, выполните следующие действия:

emulator @Pixel8_API_34 -netsim-args="--pcap --logtostderr"

Подробнее о расширенных сетевых функциях эмулятора…

-port port

Задает номер порта TCP, который используется для консоли и adb. Пример:

emulator @Pixel8_API_34 -port 5556

Значение по умолчанию – 5554 для первого экземпляра виртуального устройства, запущенного на вашем компьютере. Виртуальное устройство обычно занимает пару смежных портов: консольный порт и порт adb. Консоль первого виртуального устройства, работающего на определенном компьютере, использует порт консоли 5554 и порт adb 5555. В последующих экземплярах используются номера портов, увеличивающиеся на два. Например, 5556/5557, 5558/5559 и т. д. Диапазон портов – от 5554 до 5682, что позволяет использовать 64 виртуальных устройства одновременно.

Назначения портов часто совпадают с указанными в -ports port,{port + 1}. {port + 1} должен быть свободным и зарезервирован для adb. Если какой-либо из портов консоли или adb уже используется, эмулятор не запустится.

Вариант ‑port позволяет узнать, какие порты и серийный номер использует виртуальное устройство, и предупреждает о проблемах с указанными вами значениями. В интерфейсе эмулятора номер порта консоли можно посмотреть в заголовке окна, а номер порта adb – выбрав Справка > О программе.

Обратите внимание, что если значение port нечетное и находится в диапазоне от 5554 до 5584, виртуальное устройство запустится, но не будет видно при использовании команды adb devices, если adb server запускается после эмулятора. Поэтому мы рекомендуем использовать четный номер порта консоли.

-ports
console-port,adb-port

Задает порты TCP, используемые для консоли и adb. Пример:

emulator @Pixel8_API_34 -ports 5556,5559

Допустимый диапазон портов – от 5554 до 5682, что позволяет использовать 64 виртуальных устройства одновременно. Вариант -ports позволяет узнать, какие порты и серийный номер использует экземпляр эмулятора, и предупреждает о проблемах с указанными вами значениями.

По возможности рекомендуем использовать вариант -port. Вариант -ports доступен для конфигураций сети, требующих специальных настроек.

Подробнее о настройке портов консоли и adb…-port

-tcpdump filepath

Перехватывает сетевые пакеты и сохраняет их в файл. Пример:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

Этот вариант позволяет начать захват всех сетевых пакетов, отправляемых через виртуальную локальную сеть Ethernet эмулятора. После этого вы можете использовать такой инструмент, как Wireshark, чтобы проанализировать трафик.

Обратите внимание, что этот вариант позволяет перехватывать все пакеты Ethernet, а не только подключения TCP.

Система
-accel mode

Настраивает ускорение виртуальной машины эмулятора. Пример:

emulator @Pixel8_API_34 -accel auto

Для ускоренной эмуляции требуется образ системы, соответствующий архитектуре центрального процессора хоста. В Linux используется KVM. В Windows используется платформа гипервизора Windows (WHPX). В macOS используется Hypervisor.Framework (HVF).

Допустимые значения для параметра mode:

  • auto – автоматически определяет, поддерживается ли ускорение, и использует его, если это возможно (по умолчанию).
  • off – отключает ускорение и использует эмуляцию программного обеспечения. Этот режим не поддерживается и работает очень медленно. Чтобы использовать его, задайте для переменной среды ANDROID_I_WANT_MY_TCG значение yes. В противном случае эмулятор не запустится и выведет сообщение об ошибке.
  • on – принудительное ускорение. Если гипервизор не установлен или не работает, эмулятор не запустится и выведет сообщение об ошибке.

Подробнее о том, как настроить аппаратное ускорение для эмулятора Android…

-accel-check

Проверяет, установлен ли необходимый гипервизор для ускорения виртуальной машины эмулятора (KVM, WHPX или HVF). Пример:

emulator -accel-check

Подробнее о том, как проверить, установлен ли гипервизор…

-gpu mode

Выбирает режим эмуляции графического процессора. Пример:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

Подробнее о том, как настроить аппаратное ускорение графики…

-selinux {disabled|permissive}

Задает для модуля безопасности SELinux режим disabled или permissive в операционной системе Linux. Пример:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

По умолчанию SELinux работает в режиме enforcing, то есть правила безопасности применяются. В режиме permissive загружаются правила SELinux, но не применяются. Этот вариант позволяет только регистрировать нарушения правил. В режиме disabled поддержка SELinux в ядре отключается. Начиная с уровня API 23, disabled обрабатывается как permissive.

-timezone timezone

Задает для виртуального устройства часовой пояс timezone вместо часового пояса хоста. Пример:

emulator @Pixel8_API_34 -timezone Europe/Paris

По умолчанию эмулятор использует часовой пояс компьютера, на котором ведется разработка. Используйте этот вариант, чтобы указать другой часовой пояс или если автоматическое определение работает неправильно. Значение timezone должно быть указано в формате zoneinfo: area/location или area/subarea/location. Пример:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

Указанный часовой пояс должен быть в базе данных zoneinfo.

-version

Показывает номер версии эмулятора. Пример:

emulator @Pixel8_API_34 -version

Или

emulator -version
Интерфейс
-no-boot-anim

Отключает анимацию загрузки при запуске эмулятора, чтобы ускорить загрузку. Пример:

emulator @Pixel8_API_34 -no-boot-anim

На более медленных компьютерах этот параметр может значительно ускорить загрузку.

-screen mode

Задает режим эмуляции сенсорного экрана. Пример:

emulator @Pixel8_API_34 -screen no-touch

mode может принимать следующие значения:

  • touch – эмулирует сенсорный экран (по умолчанию).
  • multi-touch – эмулирует экран мультитач.
  • no-touch – отключает эмуляцию сенсорного экрана и экрана с поддержкой мультитач.

Дополнительные параметры

Параметры запуска из командной строки, перечисленные в таблице ниже, доступны, но обычно не используются разработчиками приложений.

В описаниях рабочий каталог – это текущий каталог в терминале, в котором вы вводите команды. Информацию о системном каталоге AVD, каталоге данных и хранящихся в них файлах можно найти в разделе о стандартных каталогах и файлах.

Некоторые из этих вариантов подходят для сторонних разработчиков приложений, а некоторые используются в основном разработчиками платформы. Разработчики приложений создают приложения для Android и запускают их на определенных виртуальных устройствах Android. Разработчики платформы работают с системой Android и запускают ее в эмуляторе без предварительно созданного AVD.

Таблица 4. Расширенные параметры командной строки

Дополнительный вариант Краткое описание
-bootchart timeout

Включает bootcharting с тайм-аутом в секундах. В некоторых системных образах Android используется измененная система инициализации, в которую интегрирована функция загрузки диаграмм. С помощью этого параметра можно передать системе период ожидания для bootcharting. Если в вашей системе инициализации не активирована функция bootcharting, этот параметр не будет работать. Этот параметр в основном полезен разработчикам платформы, а не внешним разработчикам приложений.

Пример:

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

Указывает файл образа раздела кеша. Указывает имя файла и абсолютный путь или путь относительно каталога данных для настройки постоянного файла кеша. Если файла не существует, эмулятор создаст пустой файл.

Пример:

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

Если вы не используете этот параметр, по умолчанию будет создан временный файл с именем cache.img. Подробнее о каталоге данных AVD…

-cache-size size

Задает размер раздела кеша в МБ.

Пример:

emulator @Pixel8_API_34 -cache-size 1000

Если вы не укажете этот параметр, по умолчанию будет использоваться значение 66 МБ. Обычно разработчикам приложений не требуется использовать этот параметр, если только им не нужно скачивать очень большие файлы, размер которых превышает размер кеша по умолчанию. Подробнее о каталоге данных AVD…

-data filepath

Устанавливает файл образа раздела пользовательских данных. Указывает имя файла и абсолютный путь или путь относительно рабочего каталога для настройки постоянного файла пользовательских данных. Если файл не существует, эмулятор создает образ из файла userdata.img по умолчанию, сохраняет его в указанном вами файле и сохраняет в нем данные пользователя при завершении работы.

Пример:

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

Если вы не выберете этот вариант, по умолчанию будет использоваться файл с названием userdata-qemu.img. Подробнее о каталоге пользовательских данных AVD…

-datadir dir

Указывает каталог данных, используя абсолютный путь. Подробнее о каталоге данных AVD…

Пример:

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-help-disk-images

Получает справку по образам дисков. Этот вариант содержит информацию, которая будет полезна как разработчикам приложений, так и разработчикам платформ. Пример:

emulator -help-disk-images
-help-char-devices

Получает справку о спецификациях символа device. Некоторые параметры эмулятора требуют наличия параметра A device. Пример:

emulator -help-char-devices
-help-sdk-images

Получает справку по образам дисков, относящимся к разработчикам приложений. Этот вариант позволяет получить информацию о том, где находятся файлы образов для AVD, созданного с помощью инструментов SDK. Пример:

emulator -help-sdk-images
-help-build-images

Получает справку по образам дисков, относящуюся к разработчикам платформы. Пример:

emulator -help-build-images
-initdata filepath

Указывает исходную версию раздела данных. После очистки пользовательских данных эмулятор копирует содержимое указанного файла в пользовательские данные (по умолчанию файл userdata-qemu.img) вместо того, чтобы использовать файл userdata.img по умолчанию в качестве исходной версии. Указывает имя файла и абсолютный путь или путь относительно рабочего каталога.

Пример:

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

Если путь не указан, файл будет помещен в системный каталог. Дополнительную информацию можно найти в статье Системный каталог AVD.

-kernel filepath

Использует определенное эмулируемое ядро. Если путь не указан, эмулятор ищет файл в системном каталоге. Чтобы посмотреть сообщения отладки ядра, используйте параметр ‑show‑kernel.

Пример:

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

Если вы не укажете этот параметр, по умолчанию будет использоваться значение kernel-ranchu. Подробнее о системном каталоге AVD…

-noaudio
-no-audio

Отключает поддержку аудио для этого виртуального устройства. На некоторых компьютерах с Linux и Windows установлены неисправные аудиодрайверы, которые могут вызывать различные проблемы, например не позволять запустить эмулятор. В этом случае используйте этот вариант, чтобы устранить проблему. Вы также можете использовать переменную среды QEMU_AUDIO_DRV, чтобы изменить аудиоподсистему.

Пример:

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

Запускает эмулятор без раздела кеша. Если вы не используете этот параметр, по умолчанию будет создан временный файл с именем cache.img. Этот вариант предназначен только для разработчиков платформ. Подробнее о каталоге данных AVD…

Пример:

emulator @Pixel8_API_34 -nocache
-no-snapshot

Запрещает автоматическую загрузку и сохранение, в результате чего эмулятор выполняет полную последовательность загрузки и теряет свое состояние при закрытии. Он переопределяет параметр -snapshot.

Пример:

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

Запрещает эмулятору загружать состояние AVD из хранилища снимков. Выполняет полную загрузку.

Пример:

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

Запрещает эмулятору сохранять состояние AVD в хранилище снимков при выходе, то есть все изменения будут потеряны.

Пример:

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

Не пытается исправить время часов AVD сразу после восстановления снимка. Этот вариант может быть полезен при тестировании, так как позволяет избежать резкого скачка времени. Обновления времени по-прежнему отправляются на виртуальное устройство Android примерно каждые 15 секунд.

Пример:

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-window

Отключает графическое отображение окон в эмуляторе. Этот вариант полезен, если эмулятор запущен на сервере без дисплея. Доступ к эмулятору можно получить через adb или консоль. Пример:

emulator @Pixel8_API_34 -no-window
-partition-size size

Указывает размер системного раздела данных в МБ. Пример:

emulator @Pixel8_API_34 -partition-size 1024
-prop name=value

Задает системное свойство Android в эмуляторе при его загрузке. name – это название ресурса, помеченное как qemu_prop. Оно должно содержать не более 32 символов без пробелов. value – это строка, содержащая не более 92 символов. Пример можно найти в файле property_contexts. В одной командной строке можно указать несколько вариантов ‑prop. Этот вариант может быть полезен при отладке. Пример:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args Передает аргументы программному обеспечению эмулятора QEMU. Если вы используете этот вариант, убедитесь, что он указан последним, поскольку все варианты после него интерпретируются как варианты, относящиеся к QEMU. Этот вариант довольно сложный и подходит только для разработчиков, которые хорошо знакомы с QEMU и эмуляцией Android.
-qemu -h

Показывает справку по -qemu. Пример:

emulator -qemu -h
-ramdisk filepath

Указывает загрузочный образ RAM-диска. Указывает имя файла и абсолютный путь или путь относительно рабочего каталога.

Пример:

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

Если вы не используете этот параметр, по умолчанию будет выбран файл ramdisk.img в системном каталоге. Дополнительную информацию можно найти в статье Системный каталог AVD.

-report-console socket

Передает данные о порте консоли стороннему удаленному пользователю перед запуском эмуляции. Это может быть полезно для автоматизированного скрипта тестирования. socket должен быть в одном из следующих форматов:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

Чтобы получить дополнительную информацию, используйте параметр -help-report-console, как описано в разделе Справка по отдельным параметрам.

-shell

Создает консоль оболочки root в текущем терминале. Этот параметр отличается от команды adb shell следующим:

  • Она создает оболочку root, которая позволяет изменять многие части системы.
  • Она работает, даже если adb daemon в эмулируемой системе неисправен.
  • Чтобы остановить эмулятор, а не оболочку, нажмите Control + C (или Command + C на macOS).

Пример:

emulator @Pixel8_API_34 -shell
-snapshot name

Указывает название снимка для автоматического запуска и сохранения операций.

Вместо того чтобы выполнять полную последовательность загрузки, эмулятор может возобновить выполнение из более раннего момента времени, что обычно происходит значительно быстрее. Если вы укажете этот параметр, эмулятор загрузит снимок с указанным именем и сохранит его с тем же именем при выходе.

Если вы не используете этот параметр, эмулятор использует быструю загрузку и загружает снимок default_boot, если он существует. Если указанный снимок не существует, эмулятор выполняет полную загрузку и сохраняет состояние.

emulator @Pixel8_API_34 -snapshot snapshot2

Помните, что при загрузке снимка все содержимое системы, пользовательские данные и изображения на SD-карте будут перезаписаны содержимым, которое было на них в момент создания снимка. Если вы не сохраните эту информацию в другом снимке, все изменения, внесенные с тех пор, будут потеряны.

Вы также можете создать снимок из консоли эмулятора, используя команду avd snapshot save name. Подробнее об отправке команд консоли эмулятора…

-snapshot-list

Показывает список доступных снимков для AVD, а затем завершает работу.

Пример:

emulator @Pixel8_API_34 -snapshot-list

Значения столбцов ID и TAG в выходных данных можно использовать в качестве аргументов для параметра -snapshot.

-sysdir dir

Указывает системный каталог, используя абсолютный путь. Подробнее о системном каталоге AVD… Пример:

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

Указывает исходный системный файл. Содержит название файла и абсолютный путь или путь относительно рабочего каталога.

Пример:

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

Если вы не используете этот параметр, по умолчанию будет выбран файл system.img в системном каталоге. Дополнительную информацию можно найти в статье Системный каталог AVD.

-writable-system

Используйте этот вариант, чтобы во время сеанса эмуляции иметь доступ к образу системы для записи. Вот как это сделать:

  1. Запустите виртуальное устройство с помощью параметра -writable-system.
  2. Введите команду adb remount в терминале, чтобы эмулятор переподключил system/ в режиме чтения и записи. По умолчанию он монтируется в режиме "только чтение".

При использовании этого флага создается временная копия образа системы, которая может быть очень большой (до нескольких сотен мегабайт), но будет удалена при выходе из эмулятора.

Устаревшие варианты

Поддержка следующих параметров командной строки прекращена. В зависимости от версии эмулятора они игнорируются с предупреждением или отклоняются как неизвестные параметры:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -engine
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -no-accel
  • -no-jni
  • -nojni
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -snapstorage
  • -trace
  • -useaudio

Как получить помощь по параметрам командной строки

В этом разделе рассказывается, как получить справку по параметрам командной строки. В нем приведена подробная информация о часто используемых параметрах командной строки, доступных при запуске эмулятора.

Как посмотреть все параметры эмулятора

Чтобы распечатать список всех параметров эмулятора с кратким описанием, введите следующую команду:

emulator -help

Как получить подробную информацию о конкретном варианте

Чтобы получить справку по определенному параметру запуска, введите следующую команду:

emulator -help-option

Пример:

emulator -help-netspeed

Эта справка более подробная, чем описание, которое можно получить с помощью параметра -help.

Подробная справка по всем вариантам

Чтобы получить подробную справку по всем параметрам эмулятора, введите следующую команду:

emulator -help-all

Как посмотреть переменные среды эмулятора

Чтобы получить список переменных среды эмулятора, введите следующую команду:

emulator -help-environment

Вы можете задать переменные среды в окне терминала перед запуском виртуального устройства или в настройках пользователя операционной системы. Например, задайте его в файле .bashrc в Linux.

Как посмотреть теги для отладки

Чтобы распечатать список тегов для параметров -debug, введите следующую команду:

emulator -help-debug-tags

Параметры -debug позволяют включить или отключить сообщения отладки от определенных компонентов эмулятора, указанных в тегах.