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

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

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

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

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

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

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

Обратите внимание, что аргументы -qt-hide-window -grpc-use-token -idle-grpc-timeout используются только для запуска окна эмулятора в 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 Manager. Дополнительные сведения о разделе пользовательских данных и другом хранилище см. в следующем разделе.

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

Понимание каталогов и файлов по умолчанию

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

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

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

В системном каталоге содержатся образы системы Android, которые эмулятор использует для имитации операционной системы. В этом каталоге содержатся специфичные для платформы файлы, доступные только для чтения, которые используются всеми AVD одного типа, включая уровень 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 .

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

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

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

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

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

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

Местоположение по умолчанию следующее, где name — это имя AVD:

  • macOS и Linux — ~/.android/avd/ name .avd/
  • Windows 10 и выше — C:\Users\ user \.android\ name .avd\

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

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

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

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

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

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

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

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

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

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

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

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

Параметр -wipe-data не влияет на этот файл. Если вы хотите очистить файл, удалите его, а затем заново создайте его с помощью AVD Manager или инструмента 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 — эмулятор имитирует камеру в программном обеспечении.
  • webcam n — эмулятор использует веб-камеру, подключенную к вашему компьютеру разработки, указанному номером. Для получения списка веб-камер используйте опцию -webcam-list . Например, webcam0 .
  • 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-карты. Команда возвращает предупреждение «Нет образа SD-карты» .

Если вы не укажете эту опцию, по умолчанию в каталоге данных будет sdcard.img если только AVD не указывает что-то другое. Подробную информацию об эмулируемых SD-картах см. в каталоге данных 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

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

ANDROID_VERBOSE=socket,gles

Это эквивалентно использованию:

-debug-socket -debug-gles

или

-debug socket,gles

-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'

Если вы не укажете параметр -logcat в командной строке, эмулятор будет искать переменную среды ANDROID_LOG_TAGS . Если ANDROID_LOG_TAGS определен с допустимым значением logtags и не пуст, эмулятор использует его значение, чтобы включить вывод Logcat на терминал по умолчанию. Вы также можете перенаправить те же или другие сообщения журнала на терминал через 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 — это разделенный запятыми список, содержащий до четырех имен DNS-серверов или IP-адресов. Например:
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).
  • gprs - GPRS (мин 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, макс 0).
  • num — указывает точную задержку.
  • min : max — определяет отдельные минимальную и максимальную задержку.

Например:

emulator @Pixel8_API_34 -netdelay gsm

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

-netfast Отключает регулирование сети. Например:

emulator @Pixel8_API_34 -netfast

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

-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, вниз: 473,6).
  • umts - UMTS/3G (вверх: 384,0, вниз: 384,0).
  • hsdpa - HSDPA (вверх: 5760,0, вниз: 13 980,0).
  • lte - LTE (вверх: 58 000, вниз: 173 000).
  • evdo - ЕВДО (вверх: 75 000, вниз: 280 000).
  • full — без ограничений, значение по умолчанию (вверх: 0,0, вниз: 0,0).
  • num — определяет скорость загрузки и выгрузки.
  • up : down — определяет отдельные скорости вверх и вниз.

Например:

emulator @Pixel8_API_34 -netspeed edge

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

-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

Ускоренная эмуляция работает только для образов систем x86 и x86_64. В Linux он использует KVM. В Windows и Mac он использует процессор Intel и драйвер Intel HAXM. Этот параметр игнорируется, если вы не эмулируете устройство x86 или x86_64.

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

  • auto — автоматически определяет, поддерживается ли ускорение, и использует его, когда это возможно (по умолчанию).
  • off — полностью отключает ускорение, что в первую очередь полезно для отладки.
  • on - Форсирует ускорение. Если KVM или HAXM не установлены или не используются, эмулятор не запустится и выведет сообщение об ошибке.

Дополнительные сведения см. в разделе Настройка аппаратного ускорения для эмулятора Android .

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

emulator -accel-check

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

-engine engine

Указывает движок эмулятора:

  • auto — автоматически выбирает двигатель (по умолчанию).
  • classic — использует старый движок QEMU 1 (устаревший).
  • qemu2 — использует новый движок QEMU 2.

Например:

emulator @Pixel8_API_34 -engine auto

При автоопределении следует выбирать значение, обеспечивающее наилучшую производительность при эмуляции конкретного AVD. Используйте опцию -engine только для целей отладки и сравнения.

-gpu mode Выбор режима эмуляции графического процессора. Например:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

Дополнительные сведения см. в разделе Настройка графического ускорения .

-no-accel Отключает ускорение виртуальной машины эмулятора при использовании образа системы x86 или x86_64. Это полезно только для отладки и аналогично указанию -accel off . Например:

emulator @Pixel8_API_34 -no-accel

Дополнительные сведения см. в разделе Настройка аппаратного ускорения для эмулятора Android .

-nojni
-no-jni
Отключает расширенные проверки собственного интерфейса Java (JNI) в среде выполнения Android Dalvik или ART. Например:

emulator @Pixel8_API_34 -nojni

При запуске виртуального устройства расширенные проверки JNI включаются по умолчанию. Дополнительные сведения см. в разделе Советы по JNI .

-selinux {disabled|permissive} Устанавливает модуль безопасности Security-Enhanced Linux ( SELinux ) в disabled или permissive режим в операционной системе Linux. Например:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

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

-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 и запускают их на определенных AVD. Разработчики платформы работают над системой Android и запускают ее внутри эмулятора без предварительно созданного AVD.

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

Расширенный вариант Краткое описание
-bootchart timeout

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

Например:

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
-force-32bit

Использует 32-битный эмулятор на 64-битных платформах. Иногда эта опция полезна для тестирования или отладки. Например, возникала проблема, из-за которой эмулятор иногда не запускался в 64-разрядной версии Windows, но 32-разрядная версия работала. Эта опция была полезна для проведения сравнений и устранения проблемы. Вот пример:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

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

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

Получает справку о характеристиках символьного device . Параметр device требуется для некоторых опций эмулятора. Например:

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

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

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

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

emulator -help-build-images
-initdata filepath
-init-data 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 сразу после восстановления снимка. Эта опция может быть полезна во время тестирования, поскольку позволяет избежать внезапного скачка времени. Обновления времени по-прежнему отправляются на AVD примерно каждые 15 секунд.

Например:

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

Запускает эмулятор без подключения файла для хранения или загрузки снимков состояния, вызывая полную загрузку и отключая функцию создания снимков состояния. Этот параметр переопределяет параметры -snapstorage и -snapshot .

Например:

emulator @Pixel8_API_34 -no-snapstorage
-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

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

Например:

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

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

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

Например:

emulator @Pixel8_API_34 -shell
-snapshot name

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

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

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

См. параметр -snapstorage для получения информации об указании файла хранения моментальных снимков и файла по умолчанию.

emulator @Pixel8_API_34 -snapshot snapshot2

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

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

-snapshot-list

Отображает список доступных снимков. Эта команда печатает таблицу снимков, хранящихся в файле хранилища снимков, с которым был запущен эмулятор, а затем завершает работу. Если вы также укажете -snapstorage file , эта команда распечатает таблицу снимков, хранящихся в файле.

Например:

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

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

-snapstorage filepath

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

Например:

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

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

-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 .

-use-system-libs

В Linux используется системная библиотека libstdc++ вместо версии, поставляемой в комплекте с системой эмулятора. Используйте эту опцию только в том случае, если эмулятор не запускается нормально, и учтите, что он не всегда работает. Либо установите для переменной среды ANDROID_EMULATOR_USE_SYSTEM_LIBS значение 1.

Например:

me-linux$ emulator @Pixel8_API_34 -use-system-libs
-writable-system

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

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

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

Устаревшие параметры

Следующие параметры командной строки устарели:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -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 позволяют включать или отключать отладочные сообщения от определенных компонентов эмулятора, как указано в тегах.