AVD Android: что это, Android Virtual Device и как настроить эмулятор

Автор: IT Sectr Опубликовано: 2026-02-09 Время чтения: 10 мин

AVD (Android Virtual Device) — это конфигурация эмулятора, которая имитирует реальное Android-устройство на компьютере разработчика. Каждый AVD включает выбранную версию ОС (System Image), тип устройства (телефон, планшет, Wear OS), размер экрана и объём памяти. По данным Google Android Developers, 2026, AVD используют для тестирования приложений на разных версиях и конфигурациях Android без необходимости покупать десятки физических устройств. QEMU — гипервизор, на котором работает эмулятор.

Главное

  • AVD — виртуальное Android-устройство, работающее на QEMU с выбранной System Image.
  • System Image — образ операционной системы определённого API Level с сервисами Google или без.
  • AVD Manager — инструмент Android Studio для создания, настройки и управления виртуальными устройствами.
  • Для производительной работы AVD требуется аппаратная виртуализация (HAXM, Hypervisor.Framework или WHPX).
  • AVD позволяет тестировать приложения на разных версиях Android, размерах экрана и конфигурациях без физического устройства.

Что такое AVD

AVD (Android Virtual Device) — это программная конфигурация, описывающая виртуальное Android-устройство. В отличие от физического телефона, AVD не требует железа — он запускается на компьютере через эмулятор Android, основанный на QEMU. Разработчик создаёт столько AVD, сколько нужно для тестирования: под разные версии Android, размеры экрана, объёмы памяти и плотности пикселей.

Каждый AVD привязан к конкретной SDK Platform. Это значит, что для создания AVD с Android 14 (API Level 34) нужно сначала установить System Image этой версии через SDK Manager. System Image — это образ операционной системы, который включает все системные приложения, сервисы Google (если выбран образ Google APIs) и runtime-компоненты. Google рекомендует использовать образы Google APIs с сервисами Google Play для максимальной совместимости с реальными устройствами.

AVD незаменим при разработке по нескольким причинам. Во-первых, он позволяет тестировать приложение на разных версиях Android без покупки десятков устройств. Во-вторых, AVD поддерживает Snapshots — сохранение состояния системы, что ускоряет запуск. В-третьих, эмулятор интегрирован с Android Studio: установка APK, отладка и логирование работают так же, как на физическом устройстве.

Типы виртуальных устройств

AVD поддерживает различные типы устройств: телефоны (Phone), планшеты (Tablet), часы (Wear OS), телевизоры (Android TV) и автомобильные системы (Android Automotive). Для каждого типа AVD Manager предоставляет готовые профили от Google: Pixel 8, Pixel 9 Pro, Nexus 7, Samsung Galaxy Tab и другие. Профиль устройства задаёт размер экрана, разрешение, плотность пикселей (dpi) и навигацию (жесты или кнопки).

Тип устройстваПример профиляРазрешениеdpi
PhonePixel 81080x2400420
PhonePixel 9 Pro1280x2856490
TabletPixel Tablet2560x1600320
Wear OSPixel Watch384x384320
Android TVAndroid TV 4K1920x1080240

Из чего состоит AVD

Каждый AVD — это набор файлов конфигурации и образов. Основной конфигурационный файл — config.ini, который хранит параметры виртуального устройства: имя, тип, API Level, размер экрана, объём RAM и VM heap. Файл находится в каталоге $HOME/.android/avd/ИмяAVD.avd/ и может быть изменён вручную, хотя обычно его редактируют через AVD Manager.

Кроме config.ini, в каталоге AVD хранятся: userdata.img (образ пользовательских данных — приложения, настройки, файлы), system.img (ссылка на System Image установленной SDK Platform), cache.img (кэш) и sdcard.img (образ SD-карты). При выполнении Wipe Data удаляется userdata.img и создаётся новый пустой образ. Snapshots сохраняются в отдельной папке snapshots/ внутри каталога AVD.

System Image загружается отдельно от AVD — один образ может использоваться несколькими виртуальными устройствами. Системные образы хранятся в каталоге Android SDK: $ANDROID_SDK/system-images/android-{API}/{type}/{arch}/. Типы образов: google_apis (с сервисами Google), google_apis_playstore (с Google Play Store) и default (чистый AOSP без сервисов Google).

Типы System Images

Тип образаСервисы GoogleGoogle PlayДля чего
AOSP (default)НетНетБазовое тестирование, чистая Android
Google APIsДаНетТестирование Google сервисов, Maps, FCM
Google PlayДаДаПолное тестирование с Play Store и лицензированием

Создание AVD через AVD Manager

AVD Manager — это графический инструмент в Android Studio для создания и управления виртуальными устройствами. Открыть его можно через меню Tools → Device Manager или через иконку на панели инструментов. AVD Manager показывает список созданных устройств, их статус (запущен/остановлен), версию Android и доступные действия (запуск, остановка, wipe data, редактирование).

Для создания нового AVD нажмите кнопку Create device. Выберите профиль устройства из списка готовых — Google предоставляет профили для всех популярных устройств. После выбора профиля укажите System Image: версию Android и тип образа. Для новых проектов выбирайте последнюю стабильную версию с образом Google APIs. Затем настройте имя AVD, ориентацию экрана, объём RAM и VM heap. После создания AVD готов к запуску.

Пошаговое создание AVD из командной строки

bash
# 1. Список доступных System Images
sdkmanager --list | grep system-images

# 2. Установка System Image для API 35 с Google APIs
sdkmanager "system-images;android-35;google_apis;x86_64"

# 3. Создание AVD с именем pixel8_api35
avdmanager create avd -n pixel8_api35 \
    -k "system-images;android-35;google_apis;x86_64" \
    -d pixel_8

# 4. Запуск созданного AVD
emulator -avd pixel8_api35 -gpu host -memory 2048

# 5. Список всеx AVD
avdmanager list avd

Настройка аппаратных характеристик AVD

AVD Manager позволяет детально настроить аппаратные характеристики виртуального устройства. Основные параметры: RAM (оперативная память, рекомендуемое значение 2048–4096 МБ), VM heap (размер кучи виртуальной машины, 256–512 МБ), Internal Storage (внутренняя память, 2–8 ГБ) и SD Card (виртуальная SD-карта). Эти параметры влияют на производительность приложения и его поведение при нехватке памяти.

Дополнительные настройки включают: камера (эмулированная или подключение веб-камеры хоста), датчики (акселерометр, гироскоп), NFC, Bluetooth и батарея. Например, для тестирования приложений с определением положения можно эмулировать поворот устройства через кнопки управления эмулятора или через ADB. Эмуляция датчиков позволяет тестировать сценарии, которые сложно воспроизвести на физическом устройстве.

Ключевые параметры config.ini

ПараметрОписаниеРекомендуемое значение
hw.ramSizeОперативная память устройства2048
vm.heapSizeРазмер кучи виртуальной машины256
hw.gpuEnabledАппаратное ускорение графикиyes
hw.gpuModeРежим GPU (host/mesa)host
disk.dataPartition.sizeРазмер раздела данных4096M
hw.cameraТип эмуляции камерыemulated

Оптимизация производительности эмулятора

Скорость работы AVD напрямую зависит от аппаратной виртуализации. На Windows используется Windows Hypervisor Platform (WHPX), на macOS — Hypervisor.Framework, на Linux — KVM. Если виртуализация отключена, AVD работает в режимечисто программной эмуляции, что в 10–20 раз медленнее. Для проверки включена ли виртуализация, запустите эмулятор с флагом -accel-check.

Второй ключевой фактор — выбор архитектуры System Image. Образы x86_64 работают значительно быстрее arm64-v8a на компьютерах с процессорами Intel и AMD, так как не требуют динамической трансляции инструкций ARM. Всегда используйте образы x86_64 для разработки на Windows и macOS с Intel-процессорами. На ARM-процессорах Mac (Apple Silicon) используйте нативные arm64-v8a образы.

Флаги командной строки для ускорения

bash
# Запуск с аппаратной виртуализацией и GPU-ускорением
emulator -avd pixel8_api35 -gpu host -memory 4096 -cores 4

# Проверка поддержки виртуализации
emulator -accel-check

# Запуск без графического интерфейса (для CI)
emulator -avd pixel8_api35 -no-window -no-audio -gpu off

# Использование snapshots для быстрого запуска
emulator -avd pixel8_api35 -snapshot mysnapshot -no-snapshot-save

Советы по производительности эмулятора

Для максимальной производительности AVD: выделите эмулятору минимум 2–4 ГБ RAM, включите GPU Host (использует видеокарту компьютера для рендеринга), отключите звук (флаг -no-audio), если он не требуется, и используйте Snapshots для быстрого возврата к чистому состоянию. Snapshots сохраняют полное состояние системы — запуск из снимка занимает 2–5 секунд вместо 30–60 секунд полной загрузки.

Также рекомендуется хранить AVD на SSD-диске — операции ввода-вывода при загрузке системы и установке APK значительно ускоряются. Для работы нескольких AVD одновременно увеличьте общий объём RAM на компьютере и используйте флаг -read-only для неизменяемых эмуляторов.

Управление AVD из командной строки

Полный контроль над AVD возможен через командную строку без Android Studio. Инструменты avdmanager и emulator входят в состав Android SDK и выполняют все операции: создание, удаление, запуск и настройку AVD. Командная строка особенно полезна в CI/CD-пайплайнах, где нет графического интерфейса, и для автоматизации тестирования.

Основные команды управления AVD

bash
# Создать AVD с кастомными параметрами
avdmanager create avd -n test_device \
    -k "system-images;android-34;google_apis;x86_64" \
    --device "pixel_8" \
    --force

# Удалить AVD
avdmanager delete avd -n test_device

# Клонировать AVD (через копирование файлов)
cp -r ~/.android/avd/pixel8_api35.avd ~/.android/avd/pixel8_clone.avd

# Сбросить данные AVD
emulator -avd test_device -wipe-data

# Установить APK на запущенный AVD
adb -s emulator-5554 install app-release.apk

ADB и AVD: ключевые команды

После запуска AVD с ним можно работать через ADB (Android Debug Bridge), как с физическим устройством. ADB позволяет устанавливать приложения, запускать intents, эмулировать события (звонки, SMS, GPS), делать скриншоты и записывать видео экрана. Это делает AVD полноценной средой для автоматизированного тестирования.

bash
# Список подключённых устройств (включая AVD)
adb devices

# Эмуляция входящего звонка
adb emu gsm call +15551234567

# Эмуляция GPS-координат
adb emu geo fix -122.084 37.422

# Сделать скриншот
adb exec-out screencap -p > screenshot.png

# Отправить SMS
adb emu sms send +15551234567 "Hello from AVD"

Проверка эмулятора в коде приложения

Иногда разработчику нужно определить в коде, запущено ли приложение на эмуляторе или на физическом устройстве. Это может понадобиться для отключения аналитики (чтобы не засорять продакшн-данные), включения расширенного логирования или отключения аппаратно-зависимых функций, которые не работают на эмуляторе. Google предоставляет стандартные методы проверки через Build класс и свойства системы.

Метод проверки через Build свойства

kotlin
object EmulatorDetector {
    fun isEmulator(): Boolean {
        return (Build.BRAND.startsWith("generic") &&
                Build.DEVICE.startsWith("generic")) ||
                Build.FINGERPRINT.startsWith("generic") ||
                Build.FINGERPRINT.startsWith("unknown") ||
                Build.HARDWARE.contains("goldfish") ||
                Build.HARDWARE.contains("ranchu") ||
                Build.MODEL.contains("google_sdk") ||
                Build.MODEL.contains("Emulator") ||
                Build.MODEL.contains("Android SDK")
    }
}

// Использование
if (EmulatorDetector.isEmulator()) {
    Log.d("App", "Running on emulator — enable debug mode")
}

Проверка через свойства системы

Дополнительный способ — чтение системных свойств через Build.getRadioVersion() и проверка ro.kernel.qemu. На эмуляторе radio version возвращает null, а qemu-свойство установлено в 1. Этот метод более надёжен на старых версиях Android, где Build.FINGERPRINT может быть подменён производителем устройства.

kotlin
fun isRunningOnEmulator(): Boolean {
    // Проверка через radio version — на эмуляторе всегда null
    val radioVersion = try {
        Build.getRadioVersion()
    } catch (e: Exception) {
        null
    }
    if (radioVersion.isNullOrBlank()) return true

    // Проверка через системные свойства
    return try {
        val props = ProcessBuilder()
            .command("getprop", "ro.kernel.qemu")
            .start()
            .inputStream.bufferedReader().readText().trim()
        props == "1"
    } catch (e: Exception) {
        false
    }
}

Часто задаваемые вопросы

Чем AVD отличается от физического устройства?

AVD работает на QEMU и не может полностью имитировать аппаратные особенности: реальную камеру, NFC, Bluetooth. AVD идеален для UI-тестирования, проверки lifecycle и совместимости с версиями ОС. Для точного тестирования камеры и датчиков нужно физическое устройство.

Сколько AVD нужно создавать?

Минимум 2–3 AVD: самый новый API Level для проверки новых функций, минимальный поддерживаемый (minSdk) для совместимости и популярная модель устройства (Pixel 8 или Samsung Galaxy) для тестирования UI под конкретный экран.

Почему AVD работает медленно?

Основные причины: отключена аппаратная виртуализация (WHPX, Hypervisor.Framework, KVM), мало RAM (менее 2 ГБ), отключён GPU Host. Включите -gpu host и увеличьте память до 2–4 ГБ — это ускорит эмулятор в 3–5 раз.

Можно ли запустить AVD без Android Studio?

Да. Эмулятор запускается через emulator -avd Имя_AVD из командной строки. Для этого нужны Android SDK, Platform-Tools и установленная System Image. AVD Manager также доступен как консольная утилита avdmanager.

Как сбросить AVD до заводских настроек?

В AVD Manager выберите Wipe Data — это удалит userdata.img и вернёт эмулятор в исходное состояние. Из командной строки: emulator -avd Имя -wipe-data. Snapshots при этом сохраняются, если не удалить их отдельно.

Итоги

  • AVD — виртуальное Android-устройство на базе QEMU, позволяющее тестировать приложения без физического телефона.
  • System Image — образ ОС определённого API Level, доступный в вариантах AOSP, Google APIs и Google Play.
  • AVD Manager — инструмент для создания, настройки и управления виртуальными устройствами в Android Studio или через командную строку.
  • Для производительности AVD обязательна аппаратная виртуализация (WHPX, Hypervisor.Framework, KVM) и выбор образа x86_64.
  • Через ADB доступны все операции эмуляции: звонки, SMS, GPS, установка APK, скриншоты — как на физическом устройстве.
  • Для определения эмулятора в коде используйте проверки Build.FINGERPRINT, Build.HARDWARE и ro.kernel.qemu.
  • Храните AVD на SSD и используйте Snapshots для ускорения запуска — это сокращает время загрузки с 60 до 2–5 секунд.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также