Эмулятор Android включен в состав Android Studio.
Версии эмулятора до 25.3.0 распространялись как часть Android SDK Tools.
Чтобы убедиться, что у вас установлена последняя версия, проверьте наличие обновлений в SDK Manager .
Чтобы скачать предыдущие версии Android Emulator, смотрите архив загрузки эмулятора .
Примечания к выпуску для версий эмулятора до 25.3.0 см. в примечаниях к выпуску Android SDK Tools .
Информацию об известных проблемах и способах их устранения см. в разделе «Устранение неполадок эмулятора» .
35.2.10 (1 октября 2024 г.)
- Добавлены новые Pixel AVD, включая Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL и Pixel 9 Pro Fold.
- Добавлен новый образ системы планшета для Vanilla Ice Cream (API 35).
35.1.20 (29 августа 2024 г.)
- Добавлен Pixel 8a AVD.
- Различные исправления ошибок для складных
- Обновление Qt и исправления сбоев и зависаний, связанных с qt
- [Исправление ошибки] Исправление сбоев и зависаний в Windows с приложениями, использующими Vulkan.
34.2.16 (9 июля 2024 г.)
- [Исправление ошибки] Пользовательский интерфейс зависает в Pixel Fold во время складывания/разворачивания.
- [Исправление ошибки] Некорректное отображение версии Android в виде предварительной версии Android Vanilla Ice Cream вместо API 35 на Mac M1.
- [Исправление ошибки] Проблема № 296162661 : HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE возвращает true в эмуляторе планшета Pixel C.
34.2.15 (31 мая 2024 г.)
- Различные исправления сбоев, связанные с режимом Swangle и очисткой рекламодателей.
34.2.14 (20 мая 2024 г.)
Протестировано со стабильным патчем 1 для Android Studio Jellyfish.
- [Исправление ошибки] Снимок иногда зависает во встроенном эмуляторе.
- [Исправление ошибки] Кнопки «Нет» и «Отмена» не работают должным образом на снимке.
- [Исправление ошибки] Кнопки навигации не работают.
- [Исправление ошибки] Исправлена проблема, наблюдавшаяся в Windows, из-за которой эмулятор не запускался в некоторых условиях при использовании режимов графического процессора с ANGLE и возвращалась сообщение об ошибке «Не удалось инициализировать эмуляцию GL» в журнале. Обратите внимание, что запуск эмулятора из командной строки с опцией
-gpu swangle_indirect
может по-прежнему вызывать эту ошибку в этой версии. Если вы все еще хотите запустить эмулятор с помощью командной строки в Windows с программным рендерингом графики в этой версии, используйте-gpu swiftshader_indirect
- [Исправление ошибки] Ярлык местоположения на клавиатуре загружает непригодную для использования карту.
- [Исправление ошибки] При настройке местоположения отсутствует диалоговое окно «Сохранить маршрут».
34.2.13 (30 апреля 2024 г.)
Протестировано с помощью Android Studio Jellyfish Stable.
- Обновление до Qt 6.5.3
- Совместимость обновлений Google Maps API, используемых в функциях определения местоположения в расширенных элементах управления эмулятора, произойдет в конце мая.
- Исправления серьезных сбоев
- Различные исправления для Pixel AVD.
- Обновите графическую библиотеку, используемую для программного рендеринга.
- [Исправление ошибки] Проблема 225541819. При запуске Chrome происходит сбой эмулятора на x86_64.
- [Исправление ошибки] Проблема 314614435: переключатель
-http-proxy
анализируется неправильно.
34.1.20 (1 апреля 2024 г.)
Протестировано с помощью Android Studio Iguana Stable.
- [Исправление ошибки] Проблема № 314614435 : исправлена ошибка, из-за которой ключ
-http-proxy
анализировался неправильно.
34.1.19 (7 марта 2024 г.)
Протестировано с помощью Android Studio Iguana Stable.
- [Исправление ошибки] Проблема № 312677259 : Исправлено зависание экрана во встроенном эмуляторе после изменения размера окна.
34.1.18 (29 февраля 2024 г.)
Протестировано с помощью Android Studio Iguana Stable.
- В эмулятор были добавлены устройства, в том числе:
- Пиксельная складка
- Пиксельный планшет
- Пиксель 8
- Пиксель 8 Про
- Пиксель 7а
- Интеграционный тест gRPC: конечные точки gRPC теперь доступны для инструментальных тестов, выполняемых внутри эмулятора, что позволяет тестировать реалистичные сценарии. Эта функция позволяет разработчикам безопасно взаимодействовать с конечной точкой gRPC, размещенной на эмуляторе Android, из инструментальных тестов Android.
- Различные исправления ошибок
- Исправление ошибки : улучшено удобство использования складного устройства.
- Исправление ошибки : отрегулируйте положение эмулятора после вращения.
- Исправления сбоев
33.1.24 (28 декабря 2023 г.)
Протестировано с использованием Android Studio Hedgehog Stable и Iguana Beta 1.
- Исправлена проблема с веб-камерой эмулятора, из-за которой невозможна запись экрана в формате mp4.
- Исправлен сбой эмулятора на Pixel Fold AVD, когда он разворачивался во время записи экрана.
- Исправлена проблема, из-за которой Pixel Fold отображал другой скин телефона с отсоединенной клавиатурой и был непригоден для использования (исправлено в Windows, Mac Intel и Linux).
- Исправлен сбой во внешнем виде виртуальных датчиков в автономном режиме (исправлено в Windows, Mac Intel и Linux).
- Исправлены некоторые сбои, особенно при закрытии эмулятора.
33.1.23 (30 ноября 2023 г.)
Протестировано с Android Studio Giraffe Patch 4 и Hedgehog Stable.
- Новая складная реализация для лучшей эмуляции устройства Pixel Fold, работает с новейшим API 34.
- Обновление графической части: мы внедрили протокол gfxstream для нашей графической части. Это улучшение повышает общую графическую производительность и стабильность вашей системы. Кроме того, представлена поддержка Vulkan 1.3, начиная с образа системы с API 34.
- Запрос на функцию : возможность отключить жест масштабирования или переназначить его горячую клавишу.
- [Исправление ошибки] Проблема № 302562962. Исправление сбоя веб-камеры эмулятора при использовании MacOS sonoma.
- [Исправление ошибки] Проблема № 293503871 Исправлена проблема, из-за которой настройка «Микрофон» не сохранялась при перезапуске эмулятора.
- [Исправление ошибки] Проблема № 270386314. Исправлена ошибка анимации, из-за которой боковая панель оставалась открытой после сворачивания экрана AVD.
- [Исправление ошибки] Проблема № 154896775 Исправление ошибки в инструменте отправки ошибок.
32.1.15 (29 августа 2023 г.)
Протестировано с Android Studio Giraffe Patch 1 и Hedgehog Canary 16.
- Соответствие требованиям GAS HW для датчиков в эмуляторе AAE.
- [Исправление ошибки] Проблема № 266201208: SMS на иврите не отправляются через API 33.
- [Исправление ошибки] Проблема № 257097404: Эмулятор не показывает правильное время после пробуждения хоста по API 29 и 30.
- [Исправление ошибки] Проблема № 228201899: Невозможно просмотреть карты Google в расширенных элементах управления эмулятора Android.
32.1.14 (27 июня 2023 г.)
Протестировано с Android Studio Hedgehog Canary 8, Giraffe Beta 5 и Flamingo Stable.
- Исправьте ориентацию и искажения камеры эмулятора.
- [Исправление ошибки] Проблема № 257097404 «Эмулятор не показывает правильное время после пробуждения хоста». Эта ошибка по-прежнему воспроизводится для API 29 и API 30.
- [Исправление ошибки] Проблема № 243456582 «Выпуски Android после API 30 могут некорректно запускаться в эмуляторе на компьютерах Mac M1»
32.1.13 (22 мая 2023 г.)
Протестировано с Android Studio Hedgehog Canary 2, Giraffe Beta 1 и Flamingo Stable.
- Добавьте поддержку AVD-дисков Pixel Fold и Pixel Tablet.
- Улучшите проблему сбоя gLinux.
- [Исправление ошибки] Проблема № 215231636 «Эмулятор с API выше API 30 не работает в процессоре Intel 12-го поколения».
- [Исправление ошибки] Проблема № 275397905 Высокий уровень сбоя в эмуляторе Android M1 при многократном перемещении фокуса курсора в эмулятор и из него.
- Известная проблема с запуском AVD. Проблема № 281725854 . Дополнительную информацию см. в разделе «Устранение неполадок эмулятора» .
32.1.12 (21 марта 2023 г.)
Протестировано с Android Studio Giraffe Canary 10, Flamingo RC и Electric Eel Patch 2.
- [Исправление ошибки] Проблема № 267647323 Сеть не работает в эмуляторе, запущенном из Android Studio.
- [Исправление ошибки] Проблема № 268498686. Экран эмулятора мерцает.
- [Исправление ошибки] Проблема № 270034824. Производительность эмулятора снизилась после обновления до версии 33.1.1.
- [Исправление ошибки] Проблема № 225541819. При запуске Chrome происходит сбой эмулятора на x86_64.
- [Исправление ошибки] Проблема № 257097404: Эмулятор не показывает правильное время после пробуждения хоста.
- Добавьте отчеты о сбоях для устройств Apple M1.
32.1.11 (8 февраля 2023 г.)
Протестировано с Android Studio Giraffe Canary 2, Flamingo Beta 1 и Electric Eel Patch 1.
- Оптимизация скорости сети
- Поддержка мыши во встроенном эмуляторе
- Улучшения Virtio-snd
- Отключите использование символических ссылок при распаковке эмулятора Android во время установки.
- Исправить сбой при проверке эмулятора
31.3.14 (13 декабря 2022 г.)
Протестировано с Android Studio Dolphin, Electric Eel RC1 и Flamingo Canary 9.
- [Исправление ошибки] Исправлены сбои AVD, возникающие при входе в Play Store.
31.3.13 (27 октября 2022 г.)
Протестировано с Android Studio Dolphin, Electric Eel Beta 2 и Flamingo Canary 5.
- [Исправление ошибки] Проблема № 249948338: параметр часового пояса не работает.
- [Исправление ошибки] Проблема № 249366543: опция эмулятора -dns-server не работает после API 31.
31.3.12 (10 октября 2022 г.)
Протестировано с Android Studio Dolphin и Electric Eel Beta 1.
Это обновление включает в себя следующие улучшения и исправления:
- [Исправление ошибки] Проблема № 247843000: ошибка обработки относительного пути AVD.
- Увеличьте размер диска для API 24 и более поздних версий.
31.3.11 (23 сентября 2022 г.)
Протестировано с Android Studio Dolphin и Electric Eel Canary 10.
Это обновление включает в себя следующие улучшения и исправления:
- [Исправление ошибки] Сбой встроенного эмулятора AVD в окне расширенных элементов управления
- [Исправление ошибки] Проблема № 183139207: проблемы со звуком, связанные с активацией микрофона в эмуляторе.
- [Исправление ошибки] Проблема № 229764024: ошибка липкого касания AVD, которая приводит к проблемам в поведении пользовательского интерфейса.
- [Исправление ошибки] Ошибка при запуске API 33 AVD на Mac M1.
- [Исправление ошибки] Проблема № 243053479: низкая скорость сети после обновления эмулятора.
- [Исправление ошибки] Проблема № 244617627: неработающее местоположение Карт в Windows и Linux.
- [Исправление ошибки] Проблема № 232971796: неработающая кнопка «Вызов устройства» на странице «Расширенные элементы управления» > «Телефон».
- Обновите эмулятор Android до minigbm.
- Миграция скриптов сборки на Python3
31.3.10 (18 августа 2022 г.)
Протестировано с Android Studio Dolphin Beta 5 и Electric Eel Canary 9.
Теперь доступны отдельные загрузки эмулятора. Если у вас возникли какие-либо проблемы или сбои в работе последней стабильной версии, сообщите об ошибке и рассмотрите возможность загрузки ранее работающей версии из архивов загрузки эмулятора .
Это обновление включает в себя следующие улучшения и исправления:
- Улучшена поддержка пути в Юникоде в Windows.
- Улучшена обработка отключения эмулятора, чтобы новый запуск того же AVD мог быть успешным.
- Обновлен складной дизайн AVD и настройки по умолчанию.
- Обновлены кнопки эмулятора Wear.
- Улучшения потоковой передачи звука gRPC
- Добавлена консольная команда эмулятора изменяемого размера.
- Исправление Chrome для API 31
- [Исправление ошибки] Не удалось выполнить аутентификацию учетной записи Google с помощью GmsCore v21.42.18.
31.2.10 (20 апреля 2022 г.)
Протестировано с Android Studio Dolphin Canary 8 и Chipmunk RC 1.
Это обновление включает в себя следующие улучшения и исправления:
- Добавить утилиту для загрузки функций Vulkan с резервными вариантами.
- [Исправление ошибки] Исправлена ошибка сборки gcc8.
31.2.9 (23 марта 2022 г.)
Протестировано с помощью Android Studio Dolphin Canary 7.
Это обновление включает следующее исправление:
- [Исправление ошибки] Игнорирование нехватки памяти при сохранении снимка на M1.
31.2.8 (7 февраля 2022 г.)
Протестировано с Android Studio Bumblebee Patch 1 и Chipmunk Canary 6.
Это обновление включает в себя следующие улучшения и исправления:
- [Исправление ошибки] Невозможно войти в приложения.
- [Исправление ошибки] Проблема № 215368358: «перезагрузка adb» на платформе Intel приведет к сбою avd с «запросом на выключение vcpu».
31.2.7 (1 февраля 2022 г.)
Протестировано с использованием Android Studio Bumblebee Patch 1 и Chipmunk Canary 6.
Это обновление включает следующее исправление:
- [Исправление ошибки] Ошибка зависания эмулятора на машинах M1.
31.2.6 (20 января 2022 г.)
Протестировано с Android Studio Arctic Fox, Bumblebee Beta 4 и Chipmunk Canary 6.
Это обновление включает в себя следующие улучшения и исправления:
- В эмулятор Wear OS добавлены кнопки износа.
- Все свойства автомобиля теперь доступны для редактирования на вкладке VHAL.
- [Исправление ошибки] Не удалось выполнить аутентификацию учетной записи Google с помощью GmsCore v21.42.18.
- [Исправление ошибки] Netshaper не работал с VirtioWifi.
- [Исправление ошибки] Команда консоли мыши Event не работала.
- Добавлена проверка KVM для создания локального AVD.
31.1.3 (18 января 2022 г.)
Это обновление включает в себя следующие улучшения и исправления:
- Включены консольные порты для Fuchsia.
- При изменении размера многоэкранного окна ориентация игнорируется.
- Wi-Fi: добавлена поддержка фильтрации одноадресных пакетов на основе Mac-адреса MAT.
- Wi-Fi: исправлен сбой при использовании vmnet.
30.9.5 (15 декабря 2021 г.)
Это обновление включает в себя следующие улучшения и исправления:
- Добавлена возможность легко изменять размер окна до размера рабочего стола или планшета.
- Добавлена поддержка мультитач-ввода с совместимых хост-устройств.
- VirtioWifi: добавлена поддержка Tap Network.
- Включен поворотный ввод для изображений системы износа.
- Исправлена проблема с настройкой звука gRPC.
- Обновлено воспроизведение эмулятора SensorReplay для поддержки стандартных датчиков Android.
- Подключал эмулятор к периферии и устройствам через USB со сквозным USB-переходом.
30.4.5 (23 февраля 2021 г.)
Это обновление включает в себя следующие улучшения и исправления:
- macOS: исправлены проблемы с искажением аудиовхода.
- Добавлена поддержка virtio-vsock в пользовательском пространстве.
- Будущие образы системы будут использовать virtio-console для logcat и сообщений ядра.
- Ускорьте рендеринг Vulkan.
- Добавлена поддержка отладки снимков при неудачном тесте.
- virtio-gpu: обновлены определения для поддержки последних перечислений ресурсов BLOB-объектов.
- Добавлена поддержка снимков для графических транспортов типа asg.
- macOS: добавлена поддержка сборки с использованием macOS SDK 11.1+.
- KVMlock включен по умолчанию в новых образах системы.
- В эмуляторы Wear добавлена поддержка датчика сердечного ритма.
- Удалена бэкэнд libportability Vulkan.
- Добавлена поддержка дополнительных функций в симуляторе модема.
30.0.26 (16 августа 2020 г.)
Это обновление включает в себя несколько новых функций, улучшения существующих функций и исправления ошибок.
Поддержка складных устройств с помощью виртуального датчика шарнира и 3D-просмотра
Добавлена поддержка датчиков шарниров для складных устройств. Для этого требуется будущий образ системы Android 11 и конфигурация AVD. Трехмерный вид складной конструкции и параметры шарниров теперь интегрированы с существующими настройками складной конструкции. Следующее можно использовать, например, с файлом
config.ini
складного AVD 7.3:hw.sensor.hinge = yes hw.sensor.hinge.count = 1 hw.sensor.hinge.type = 1 hw.sensor.hinge.ranges = 180-360 hw.sensor.hinge.defaults = 180 hw.sensor.hinge.areas = 54.7-0 hw.sensor.posture_list=4, 3 hw.sensor.hinge_angles_posture_definitions=210-360, 180-210 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
Складные устройства теперь также имеют параметр подтипа. Свойство
config.ini
hw.sensor.hinge.sub_type = hinge/fold
теперь доступно. Дополнительную информацию см. в блоге «Разработка для Android 11 с помощью эмулятора Android» .Датчик шарнира теперь включен по умолчанию.
Если настроено складное устройство, эмулятор теперь отправляет гостю обновления датчиков угла поворота шарниров и изменения положения. Существующие складные устройства теперь будут обновлять угол и положение датчика шарнира при нажатии кнопок сгиба или разворачивания на панели инструментов.
Эмулятор для хостов ARM64
Исходный код эмулятора Linux теперь поддерживает кросс-компиляцию с хостов x86_64 на хосты Arm64, что позволяет запускать образы системы Arm64 с виртуализацией KVM. В настоящее время поддерживается только
-gpu swiftshader_indirect
(хост-рендеринг Swiftshader Arm64), но можно также использовать совместимый набор библиотек libEGL/libGLESv2 хост-графического процессора, заменив ими lib64/gles_swiftshader и затем перезапустив его с-gpu swiftshader_indirect
. Снимки также могут не работать (добавьте-no-snapshot
в командную строку). Инструкции:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Поддержка Apple Silicon находится в разработке.
поддержка Virtio-GPU
- На стороне хоста добавлена поддержка будущих ресурсов согласованных BLOB-объектов хоста virtio-GPU.
- Из-за того, как работает рендеринг в эмуляторе, мы теперь обрабатываем очередь virtio-gpu в потоке vcpu (поскольку рендеринг в любом случае выгружается в другие потоки). Рендеринг virtio-GPU будет включен в будущем образе системы и версии эмулятора.
- В будущем образе системы эмулятор сможет запускать всю графику со стеком на основе virtio-GPU.
Другие новые функции и улучшения
- Сквозное подключение USB теперь доступно в Windows с помощью
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (Это также должно было уже работать на Linux и macOS) - Библиотеки WebRTC обновлены до M83.
- Эмулятор теперь поддерживает потоковую передачу звука в контейнерах через WebRTC.
- Конечная точка канала Дарвинна была удалена.
- Декодирование CUDA VPx для видео теперь доступно, если декодирование CUDA VPx доступно аппаратно, через переменную среды
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
. - В macOS SSE 4.1 и 4.2 теперь доступны из гостевой системы Android.
- В macOS INVTSC теперь включен по умолчанию. Это может повысить точность измерения времени гостем.
- Теперь мы отслеживаем, какую расширенную панель управления выбрал пользователь, в метриках.
- Эмулятор Linux теперь использует паравиртуализированные часы KVM, если версия гостевого ядра >= 5.4 (образы системы R или новее).
- Эмулятор теперь использует LZ4 для распаковки гостевых ядер, что делает его совместимым с современным конвейером ядра.
Добавлены консольные команды для получения каталога AVD эмулятора, пути к файлу обнаружения во встроенном сценарии использования Studio и пути к снимкам:
adb emu avd path # Obtains path to AVD directory adb emu avd discoverypath # Obtains path to discovery file adb emu avd snapshotspath # Obtains path to snapshots folder adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
Чтобы упростить экономию места на экране по вертикали, мы добавили возможность скрыть рамку устройства для текущего AVD в разделе «Расширенные элементы управления» > «Настройки» . Чтобы глобально скрыть кадры устройств для всех AVD, мы сделали доступным флаг функции
NoDeviceFrame
, который можно активировать, запустив эмулятор из командной строки с помощью-feature NoDevice
NoDeviceframe, или заблокировать его, добавивNoDeviceFrame = on
в~/.android/advancedFeatures.ini
(создайте этот файл, если он еще не существует).На странице сотовой связи добавлен раскрывающийся элемент для включения и отключения поддержки измерения. Это неактивно для старых образов системы, которые не поддерживают переключатель измерения 5G.
- Также добавлена консольная команда для той же цели:
gsm meter on|off
- Также добавлена консольная команда для той же цели:
Обновлен набор инструментов/сборка до C++17.
Исправления: встроенный эмулятор.
- Буфер обмена теперь должен работать.
- Исправлена проблема, из-за которой в эмуляторе символы верхнего регистра доставлялись как символы нижнего регистра.
- Исправлена загрузка токена консоли по пути в Юникоде в Windows.
- Исправлено сообщение об ошибке
SO_REUSEPORT
в Linux. - Исправлена проблема с повреждением снимка при отправке команд снимка через gRPC, а также при нажатии кнопки сохранения снимка во встроенном эмуляторе Android Studio.
При использовании эмулятора Linux, встроенного в Studio, мы обнаружили, что если это делается через Chrome Remote Desktop, возникает ошибка, из-за которой
XDG_RUNTIME_DIR
не установлен, что может привести к тому, что встроенный эмулятор не появится из-за того, что файлы обнаружения эмулятора помещаются вXDG_RUNTIME_DIR
. Вы можете проверить статус соответствующей проблемы в трекере проблем Chrome .В качестве обходного пути эмулятор теперь возвращается к использованию файлов обнаружения в возможно другом каталоге, основанном на UID пользователя:
/run/user/<uid>
.Встроенный эмулятор: устройства с закругленными углами/выемками теперь правильно меняют свою компоновку, освобождая место для углов и выемок. Для этого требуется холодная загрузка этих эмуляторов.
Конечная точка gRPC теперь поддерживает отправку SMS на устройство.
Общие исправления
- Мы наблюдали проблемы совместимости при запуске эмулятора Windows с активным Riot Vanguard. Эмулятор Windows теперь обнаруживает античит Vanguard и выводит предупреждающее сообщение, если Vanguard обнаружен.
- Исправлена ошибка
FD_SETSIZE
в Windows. Теперь мы используемWSAEventSelect()
вместоselect()
для установления неблокирующих соединений с серверами обратной связи. - В эмулятор Linux добавлена поддержка функции F16C CPUID с исправлениями проблем, связанных с запуском некоторых приложений ARM64 посредством трансляции NDK; macOS/Windows в разработке.
- Исправлено воспроизведение маршрута gpx/kml с учетом временных меток.
- Исправлен подпрыгивающий значок при запуске для MacOs.
- Если
hw.audioInput=no
иhw.audioOutput=no
вconfig.ini
, звук эмулятора теперь правильно отключен. - Исправлена проблема, из-за которой, если окно эмулятора было свернуто, а окно расширенных элементов управления было открыто, но не активно, окно расширенных элементов управления продолжало отображаться при изменении размера окна эмулятора. Мы полностью удалим это поведение (случай с активным окном расширенных элементов управления) в будущем обновлении.
- Исправлена ошибка, из-за которой Wi-Fi не подключался при запуске эмулятора.
- Исправлено зависание при выходе, когда эмулятор выдает команды оболочки с длинными или неопределенными таймаутами.
- Обновлен pc-bios с исправлениями для лучшей поддержки больших изображений, передаваемых в
-initrd
; предыдущий BIOS использовал очень неэффективный метод. - Исправлен сбой при завершении работы при использовании опции
-wifi-server-port
. - Эмулятор теперь выводит предупреждение, если в
-prop
передаются неподдерживаемые параметры (поддерживаются только реквизиты qemu.*). - При сборке эмулятора в Windows должно быть меньше шансов увидеть периодические сбои при записи в файлы. Дополнительные сведения см. в инструкциях по сборке Windows .
- Отключена кнопка масштабирования для складных AVD, что вызывало проблемы.
- Эмулятор теперь правильно сообщает время загрузки после перезагрузки устройства.
- Linux: в случае недостаточности разрешений KVM эмулятор теперь быстрее печатает инструкции по отладке.
- Исправлена проблема, из-за которой эмулятор не мог загрузить последние образы системы без ускорения.
- Исправлено повреждение памяти или сбой при запуске из детектора завершения загрузки.
- Исправлена утечка памяти во время длительных сеансов записи экрана.
- Значки эмулятора обновлены с учетом фирменного стиля Studio 4.1.
- Добавлена улучшенная поддержка обнаружения удаленных сеансов в Windows.
Исправления: декодирование графики и видео.
- Исправлена проблема, из-за которой последняя игра Asphalt 9 отображалась с черным экраном.
- Удален спам по поводу очистки сопоставленного буфера значением
NULL
. - Исправлено состояние гонки при отключении состояния Vulkan при выходе из гостевого приложения Vulkan.
- Шейдеры эмуляции Vulkan ASTC/ETC2 теперь встроены в библиотеку libOpenglRender. Это будет более надежно по сравнению с чтением из файловой системы.
- Исправлена проблема в Vulkan, из-за которой при работе с экземпляром Vulkan 1.0 на хосте
vkGetImageMemoryRequirements2KHR
неправильно очищал возвращаемое полеpNext
структурыVkMemoryRequirements2
. - Исправлена утечка памяти в рендерере Vulkan.
- Исправлена недавняя регрессия, из-за которой шейдеры GLSL ES 1.00 с именами переменных, например
isampler2D
не компилировались. - Обновлен транслятор шейдеров ANGLE с различными исправлениями, устраняющими возможные сбои при компиляции шейдеров в Linux.
- Теперь мы завершаем работу эмулятора, если базовый шейдер фреймбуфера не компилируется, чтобы отслеживать это явление.
- Обновлен транслятор шейдеров ANGLE, чтобы не отставать от исходного ANGLE. Исправлена проблема, связанная с повреждением памяти при трансляции и постоянном сворачивании шейдеров OpenGL ES, в которых использовались неквадратные матрицы. Транслятор шейдеров теперь представляет собой отдельную общую библиотеку
libshadertranslator.dll
. - Исправлена проблема с инициализацией Vulkan в некоторых драйверах графического процессора, из-за которой не были обнаружены определенные функции устройства версии 1.1.
- Vulkan: мы вернулись к использованию встроенного загрузчика, поскольку предпочтение системного загрузчика Vulkan вызывало проблемы в некоторых настройках; придумаем лучшее решение.
- Исправлена проблема при использовании внешней памяти Vulkan, из-за которой она могла быть импортирована с несоответствующими индексами типа памяти на хосте.
- Исправлена проблема при эмуляции
GL_ALIASED_POINT_SIZE_RANGE
, из-за которой перечисление не поддерживалось на хосте. - Исправлена проблема, из-за которой на некоторых хост-графических процессорах шейдеры Skia не могли скомпилироваться из-за ошибок, связанных с
GL_EXT_shader_framebuffer_fetch
. - Поскольку наша копия средства рендеринга D3D9 ANGLE была удалена несколько версий назад, мы теперь также автоматически переключаем пользователей, которые использовали этот рендерер, на d3d11 ANGLE, если он был выбран в настройках пользовательского интерфейса.
- В инициализацию WGL в Windows добавлено больше отладочной информации для отслеживания сбоев.
- Когда
hw.gltransport=virtio-gpu-pipe
производительность повышается за счет отсутствия вращения на хосте при передаче от хоста к гостю. - Добавлено дополнительное ведение журнала отладки, когда эмуляция OpenGLES не удается инициализировать.
- Исправлена проблема, из-за которой видеоролики YouTube мерцали или не отображались при загрузке снимка.
- На данный момент мы вернулись к программному декодированию libvpx, поскольку мы заметили проблемы с аппаратным декодированием libvpx с помощью CUDA. Если у вас есть поддерживаемая реализация аппаратного декодирования CUDA на стороне хоста, аппаратное декодирование libvpx можно повторно включить с помощью переменной среды
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
.
30.0.10 (30 апреля 2020 г.)
Это обновление включает поддержку запуска эмулятора непосредственно в Android Studio и на виртуальных устройствах с активированным по умолчанию оконным режимом произвольной формы.
Запустите эмулятор в Android Studio.
Эмулятор Android теперь можно запускать непосредственно в Android Studio . Используйте эту функцию, чтобы сэкономить место на экране, быстро перемещаться между эмулятором и окном редактора с помощью горячих клавиш, а также организовать рабочий процесс IDE и эмулятора в одном окне приложения.
Оконный режим произвольной формы
Теперь вы можете создать AVD с включенным оконным режимом Freeform, выбрав аппаратный профиль планшета Freeform с диагональю 13,5 дюйма при создании виртуального устройства в Android Studio. Для этого профиля оборудования требуется образ системы с Android 11 Developer Preview 3 или более поздней версии.
Известные проблемы
Изменение размера окон произвольной формы в настоящее время недоступно из-за проблем с передачей фокуса диспетчеру окон. Эта проблема будет решена в будущем выпуске образа системы Android 11.
30.0.0 (19 февраля 2020 г.)
Это обновление включает в себя образы системы Android 11 (уровень API 30) и повышенную производительность при запуске двоичных файлов ARM.
Системные образы Android 11
Теперь вы можете создать AVD под управлением Android 11, выбрав любой из доступных образов системы API уровня 30:
- x86 : включает ABI x86 и ARMv7.
- x86_64 : включает ABI x86, x86_64, ARMv7 и ARM64.
Поддержка двоичных файлов ARM в образах системы Android 9 и 11.
Если раньше вы не могли использовать эмулятор Android, поскольку ваше приложение зависело от двоичных файлов ARM, теперь вы можете использовать образ системы Android 9 x86 или любой образ системы Android 11 для запуска вашего приложения — больше не нужно загружать конкретный образ системы. для запуска двоичных файлов ARM. Эти образы системы Android 9 и Android 11 по умолчанию поддерживают ARM и обеспечивают значительно улучшенную производительность по сравнению с образами с полной эмуляцией ARM.
Известные проблемы
- Некоторые двоичные файлы ARMv7 не запускаются на системных образах Android 11 x86 и x86_64. Если вы планируете использовать Android 11, рассмотрите возможность создания версии для ARM64.
29.0.11 (29 мая 2019 г.)
Это обновление включает в себя следующие улучшения и исправления:
- Windows: эмулятор теперь использует поставляемую нами библиотеку DLL
libgcc
, а не статически компилируется с помощьюlibgcc
. - Linux: в API gRPC добавлена поддержка logcat. Дополнительные сведения о gRPC см. в разделе Эмулятор потоковой передачи gRPC (Linux) .
- Эмулятор теперь включает в себя автономную сборку для 32-битных гостей x86 (
qemu-system-i386
). Эта функция позволяет 32-разрядным образам x86 для уровней API 26 и ниже работать с безголовой сборкой. Обратите внимание, что для 32-битных гостей x86 с API 27 и более поздних версий эмулятор использует 64-битный движок (qemu-system-x86_64
), поскольку в этих образах системы, хотя пользовательское пространство является 32-битным, ядро является 64-битным. Android Studio использует ядро для выбора механизмов эмуляции. - Теперь вы можете указать собственные пути к библиотеке Qt, используя переменную среды
ANDROID_QT_LIB_PATH
. - Теперь вы можете запустить эмулятор с предыдущими двоичными файлами, использующими QEMU1, если исполняемые файлы QEMU1 (
emulator[64]-[x86|arm|etc]
) помещены в каталог эмулятора. - Windows: исправлена проблема, которая иногда могла привести к сбою запуска эмулятора с сообщением «запрос на отключение виртуального ЦП».
- Исправлена проблема с ненужным барьером конвейера в эмулируемых сжатых текстурах в Vulkan.
- Исправлена ошибка, возникавшая при запросах HTTP-прокси при использовании фрагментированного кодирования передачи. Дополнительные сведения см. в сведениях о коммите .
29.0.9 (7 мая 2019 г.)
Это обновление включает следующее исправление:
- Windows: исправлена проблема, из-за которой камера виртуальной сцены и веб-камера не работали в эмуляторе.
29.0.8 (6 мая 2019 г.)
Это обновление включает в себя следующие улучшения и исправления:
- Добавлена поддержка нескольких дисплеев виртуального оборудования при наличии гостевой службы для перечисления и настройки каждого дисплея. Несколько дисплеев виртуального оборудования будут включены в будущее обновление образа системы эмулятора.
- Добавлен новый параметр командной строки:
-delay-adb
. Эта опция подавляет обработку пакетов ADB до тех пор, пока гость не завершит загрузку (после холодной загрузки). Этот параметр помогает решить проблемы, которые могут возникнуть, если вы используете эмулятор в среде CI, которая перезагружает эмулятор и одновременно использует DDMS. - Исправлена ошибка, возникавшая при загрузке снимков, из-за которой
glIsRenderbuffer
возвращал неправильное значение. - Исправлены некоторые проблемы с устаревшим состоянием при перезагрузке гостя Android.
- Windows: исправлены проблемы, из-за которых эмулятор не запускался, если имя пользователя Windows содержало символы или пробелы, отличные от ASCII.
Известные проблемы
- Пользовательский интерфейс моментальных снимков отключен для образов автомобильных систем, поскольку в настоящее время для этих образов систем моментальные снимки не поддерживаются.
29.0.6 (1 мая 2019 г.)
Это обновление включает в себя несколько новых функций, улучшения существующих функций и исправления ошибок.
Удаление QEMU1 и поддержки 32-битной Windows.
Чтобы лучше поддерживать эмулятор, мы больше не поставляем двоичные файлы QEMU1 и 32-разрядной версии Windows. Если вы используете 32-разрядную версию Windows, вы не сможете выполнить обновление до версии 29.0.6.
Требования к образам системы Android Q
Если вы хотите запустить AVD, использующий образ системы Android Q, теперь вам необходимо использовать версию 29.0.6 (эта версия выпуска) или выше.
Улучшения проекта «Мрамор»
Это обновление продолжает нашу работу над инициативой Project Marble , о которой было объявлено на саммите разработчиков Android в ноябре 2018 года. Дополнительные сведения о других улучшениях Project Marble в предыдущих выпусках см. в разделе Android Emulator: Project Marble Improvements .
В этом обновлении большая часть наших усилий по проекту Marble была направлена на сокращение использования ресурсов эмулятора, например, на снижение загрузки ЦП эмулятора во время простоя. Мы также включили изменения, которые упрощают работу с эмулятором в более широком диапазоне сред, и решили общие проблемы с качеством.
В следующих разделах описаны улучшения Project Marble, включенные в это обновление:
Улучшения поведения звука хоста
Начиная с версии 28.0.3 эмулятор по умолчанию блокирует аудиовход с хоста.
Если вы хотите использовать аудиоданные хоста, вы можете включить эту опцию, перейдя в «Расширенные элементы управления» > «Микрофон» и включив «Виртуальный микрофон использует аудиовход хоста» . Эта опция автоматически отключается при каждом перезапуске эмулятора.
Если вы используете командную строку, вы также можете включить звук хоста, используя параметр -allow-host-audio
, и вы можете использовать следующие команды ADB для включения или выключения аудиоданных хоста соответственно:
-
adb emu avd hostmicon
-
adb emu avd hostmicoff
Улучшения для сборок безголового эмулятора
Начиная с версии 28.0.25, эмулятор включает опцию автономной сборки , которая может работать без пользовательского интерфейса. Вы можете использовать автономные сборки, чтобы настроить эмулятор для рабочих процессов Docker и непрерывной интеграции (CI).
В этом обновлении мы внесли дополнительные улучшения, позволяющие эмулятору работать с минимальным количеством зависимостей. В Linux безголовые сборки больше не включают библиотеки pulseaudio
или libX11
. Системно-зависимые общие библиотеки, не поставляемые с эмулятором, были сокращены до следующего списка:
-
Linux-vdso.so.1
-
Libutil.so.1
-
Libm.so.6
-
Libdl.so.2
-
Librt.so.1
-
Libpthread.so.0
-
Libgcc_s.so.1
-
Libc.so.6
-
ld-linux-x86-64.so.2
Библиотеки Qt UI обновлены до версии 5.12 LTS.
Это обновление включает в себя следующие улучшения по сравнению с выпуском Qt 5.12 LTS:
- Чтобы избежать сбоев при декодировании
libpng
в Qt при запуске определенных системных изображений, эмулятор теперь использует собственную копиюlibpng
для декодирования изображений PNG. - Чтобы решить проблемы с некоторыми установками Linux, содержащими несовместимые версии некоторых Qt-зависимых библиотек, мы теперь упаковываем
libfreetype
,libsoftokn
,libsqlite3
иlibxkbcommon
вместе с эмулятором. - Эмулятор теперь использует собственные оконные библиотеки платформы для получения размеров монитора вместо использования библиотек Qt, которые возвращали ненадежные результаты.
Автоматическая оптимизация ЦП после холодной загрузки
Чтобы решить проблему использования ЦП, эмулятор теперь выполняет следующие команды ADB при холодной загрузке после получения сигнала boot complete
:
-
adb shell settings put screen_off_timeout 214783647
- Эта команда увеличивает время ожидания отключения экрана, поэтому эмулятор можно использовать в режиме батареи без зарядки. В режиме работы от батареи фоновая загрузка процессора значительно снижается.
- В режиме зарядки от переменного тока фоновые операции GMSCore, такие как обновления приложений, могут без предупреждения захватить все ядра ЦП устройства и, как следствие, компьютер пользователя.
-
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- Эта команда отменяет разрешения на использование микрофона для приложения поиска Google, что значительно снижает фоновую загрузку ЦП на главном экране и в панели запуска, когда приложение поиска Google активно.
- Эта команда запускается в дополнение к стандартному поведению эмулятора по отключению звука хоста для хоста. Кроме того, это автоматически обеспечивает снижение нагрузки на ЦП, описанное для обнаружения горячих слов из версии 28.0.23.
Новые переменные среды для мониторинга производительности
Теперь вы можете использовать две новые переменные среды, чтобы обеспечить подробный мониторинг производительности эмулятора и использования ресурсов.
-
SHOW_PERF_STATS=1
- Эта переменная среды обеспечивает отслеживание использования процессора и оперативной памяти. Отслеживание для использования RAM различает использование графики и общей памяти резидентов.
-
ANDROID_EMU_TRACING=1
- Эта переменная среды позволяет печатать каждый раз, когда входная или графическая операция занимает много времени (дольше 1 мс).
- Мы также используем эту переменную среды, чтобы помочь диагностировать проблемы, с которыми сталкивались пользователи Windows с большим количеством Jank (Dropped Rames), чем пользователи на MacOS или Linux.
Общие улучшения мрамора проекта
Это обновление также включает в себя следующие общие улучшения, которые являются частью инициативы Project Marble:
- Теперь вы можете немедленно приостановить все VCPU на эмуляторе с помощью следующих команд консоли:
-
adb emu avd pause
-
adb emu avd resume
-
- Значительно уменьшенные накладные расходы на рисунок OpenGL. Это улучшение уменьшает использование процессора, в то время как эмулятор играет анимации.
- Восстановленная поддержка для виртуального сетевого устройства E1000 от QEMU. Вы можете использовать это устройство для настройки эмулятора в мостичной сетевой среде. В мостовой сетевой среде эмулятор отображается в хост -сети, а хост -сеть отображается на эмуляторе.
- Двоирные файлы BIOS, подходящих QEMU 2.12, теперь используются для запуска эмулятора.
- Обновленная версия
ffmpeg
до 3.4.5 для кодирования и декодирования видео. - Значительно уменьшенные накладные расходы основного ввода/вывода QEMU на MacOS, заменив основной цикл, который был основан на
select()
на основной цикл, основанный наkqueue
. - Размер буфера logcat увеличился до 2 МБ для решения проблем с флакированным неожиданным EOF при запуске LogCat с эмулятором.
- Эмулятор теперь экспортирует переменную среды
LC_ALL=C
по умолчанию. Это изменение решает сбои и проблемы несовместимости, связанные с запуском эмулятора в разных местах. - Теперь вы можете отслеживать использование процессора и оперативной памяти эмулятора, используя статистику производительности, к которой вы можете получить доступ к расширенным элементам управления> Настройки> Advanced> Статистика производительности . Используйте эти статистики для быстрого диагностики проблем, если эмулятор, похоже, использует слишком много процессора или оперативной памяти.
-
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
теперь использует результат GPU хоста вместо эмулированного. Это изменение помогает исправить проблемы, где изображения и активы не отображаются из -за неправильного формата для чтения. - Добавлена поддержка расширений OpenGL ES
GL_EXT_texture_format_BGRA8888
иGL_APPLE_texture_format_BGRA8888
если эти расширения поддерживаются хостом. - Добавлено больше диагностической информации в пользовательский интерфейс Bugreport. Кроме того, вы можете получить доступ к отчетам об ошибках из консоли, используя следующие команды:
-
telnet localhost 5554
-
avd bugreport
-
- На изображениях системы Android Q эмулятор увеличивает свой минимальный размер ОЗУ до 2 ГБ.
- Добавлено больше журнала и печати всякий раз, когда OpenGL или гипервизор не может инициализировать.
- Если эмулятор не может запустить одновременный экземпляр
-read-only
для AVD, эмулятор теперь пытается перезапустить-read-only
AVD еще 3 раз в течение 3 секунд. Это изменение увеличивает вероятность того, что эмулятор сможет запустить одновременные экземпляры-read-only
для AVD, если другие записные экземпляры этого AVD не будут выполнены очисткой устаревших файлов. - Для предстоящих системных изображений эмулятор теперь поддерживает аппаратный композитор 2.0. Это изменение должно снизить накладные расходы водителя при запуске большинства анимаций.
- Сборка эмулятора теперь основана на Cmake/Ninja.
- В пользовательском интерфейсе Emulator Extended Controls линии разделителей в таблице сочетания клавиш были восстановлены.
- Теперь пользователи могут принять участие в том, чтобы предоставить нашей команде показатели использования процессоров и RAM в 10-секундном интервале. Мы используем эти показатели для обогащения наших данных об использовании ресурсов эмулятора с различными вариантами использования от наших пользователей, что позволяет нам сделать эмулятор более эффективным и отзывчивым.
Общие исправления мрамора проекта
Это обновление также включает в себя следующие общие исправления, которые являются частью инициативы Project Marble:
- Исправлены проблемы с подергиванием и неправильными кадрами, которые были отображены в системах с графическими процессорами Intel при использовании изображений системы Android Q.
- Исправлены проблемы, в которых был отображен черный экран при использовании изображений системы Android Q с шкурами Pixel 2 XL (или любой кожи, которая имеет выемку или закругленные углы).
- Исправлена проблема, в которой параметр командной строки
-partition-size
не установит размер раздела данных. - Исправлена проблема, в которой PulseAudio на эмуляторе LINX вращается и в некоторых ситуациях займет целое ядро процессора.
- Исправлены проблемы с доступом к памяти вне границ при обработке сжатых текстур.
- Исправлены ошибки GL, которые произошли на хосте в
glTexSubImage2D
при обновлении определенных буферов Gralloc (с форматом RGB 565, RGB10A2, RGB (A) 16F). - Исправлена проблема с отображением на изображениях системы Android Q с помощью снимков, где геометрия оттенка уведомления была отображена с неправильной настройкой делителя экземпляра.
- Исправлена несколько трудолюбивых проблем с аварией и замораживания при запуске, которые произошли из-за того, что QT проиграли сигналы или имели неустойчивые, непоследовательные состояния при запуске.
- Исправлено многочисленные проблемы параллелизма. Теперь мы можем построить эмулятор Linux с помощью Threadsanitizer (TSAN), который может легко раскрыть ошибки, которые в противном случае трудно воспроизвести.
- Для пользователей Linux: мы обнаружили, что на определенных ядрах хоста гостевое ядро Android может покинуть и выйти в KVM с общей аппаратной ошибкой. Эмулятор теперь
abort()
когда это произойдет, чтобы увеличить отказа (ранее, эмулятор просто подвешивался). - Для пользователей Linux: для удобства с настройками CI вы можете использовать новую опцию командной строки
-stdouterr-file <file-name>
для перенаправления какstdout
, так иstderr
в файл. - Исправлена проблема, где
SO_REUSEADDR
использовалась неправильно. Для получения дополнительной информации см. Подробности коммита . - Исправлена давняя проблема с эмулятором Windows, где подпроцессы, такие как команды ADB, не смогли начать, если в имене пользователя было места в нем.
- Исправлена проблема с отсутствующей инициализацией RCU в потоках VCPU HAXM. Это исправление может рассмотреть некоторые аварии и условия гонки.
- Исправлена аварий, произошедший с определенными шаблонами сохранения и загрузки снимков с пользовательского интерфейса снимков с использованием недавних изображений системы Android Q.
- Исправлена проблема, когда камера виртуальной сцены была бы пустой, когда эмулятор был инициализирован с моментального снимка, если макрос AR играл, когда этот снимок был сохранен.
- Исправлена проблема, когда некоторые пользователи с удаленными настройками настольных компьютеров получили черный экран при запуске эмулятора на Linux. Чтобы избежать этого, эмулятор теперь явно настраивает
MESA_RGB_VISUAL
. Для получения дополнительной информации см. Подробности коммита . - Исправлена проблема , где кнопки вращения появятся на телевизоре.
- Исправлена проблема , где, если эмулятор всегда был установлен сверху, расширенное окно управления появлялось каждый раз, когда эмулятор вращался.
Профили аппаратного обеспечения для складных устройств
Эмулятор теперь включает аппаратные профили для складных устройств. Чтобы использовать эти новые аппаратные профили, вы должны использовать Android Studio 3.5 Canary 10 или выше.
Есть два складных аппаратных профиля, которые вы можете использовать для создания AVD:
- 7,3 "Складная: 1536x2152 развернута, 4,6" 840x1960
- 8 дюймов склад: 2200x2480 развернута, 6,6 "1480x2480
Когда вы запускаете эмулятор, используя один из этих аппаратных профилей, вы можете сложить и развернуть устройство, используя складные и развернутые действия на панели инструментов эмулятора, командах консоли или следующих сочетаниях клавиш:
- FOLD:
Ctrl + F
(Command + F
на macOS) - Развернуть:
Ctrl + U
(Command + U
на macos)
AR макросы
Эмулятор теперь включает в себя макросы AR, которые могут помочь вам проверить общие действия AR. Например, вы можете использовать макрос для сброса всех датчиков устройства в их состояние по умолчанию.
Для получения дополнительной информации см. Test Common AR -действия с макросами .
Поддержка Vulkan (Windows, Linux)
Пользователи Windows и Linux теперь могут тестировать приложения Vulkan с эмулятором Android до Vulkan 1.1 при использовании совместимого изображения системы (Android Q Beta 3 или выше для Vulkan 1.1, Android Q Beta 2 для Vulkan 1.0) и совместимый график хоста (это включает Большинство Intel, Nvidia и AMD GPUS с 2014 года и позже).
Чтобы включить поддержку Vulkan, вы должны добавить следующие флаги функций в ваш файл ~/.android/advancedFeatures.ini
(создайте файл, если он не существует):
-
Vulkan = on
-
GLDirectMem = on
Первоначальная поддержка разработчиков ПЗУ
Разработчики ПЗУ, которые строят целевые показатели sdk_phone_x86
или sdk_phone_x86_64
( userdebug
, eng
) на master
ветви AOSP, теперь могут запускать эмулятор с поддержкой Вулькана.
Эта поддержка все еще экспериментальная и в основном предназначена для разработчиков, которые работают над изображениями систем, драйверов и игровыми двигателями. Многие расширения все еще отсутствуют. Тем не менее, поддерживается память HOST_COHERENT
, и теперь вы должны иметь возможность запустить образцы учебного пособия API Vulkan .
Если вы используете Linux, вы можете попробовать это, используя следующие команды:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Skia рендеринг с Vulkan
NVIDIA и AMD-графические процессоры, которые поддерживают Vulkan, также поддерживают взаимодействие с нулевой копией с OpenGL через расширение GL_EXT_memory_objects
. Эмулятор использует эту возможность для обеспечения полного способа отобрать пользовательский интерфейс Android с использованием Skia Vulkan API.
Если у вас есть GPU NVIDIA или AMD, который поддерживает Vulkan, используйте следующие команды для проверки рендеринга Skia с помощью совместимого системы системы (Android Q Beta 3 и выше):
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
Поддержка MacOS для Vulkan
Поддержка MacOS все еще экспериментальная, но эмулятор уже включает API Swiftshader , Moltenvk и Libportability ( GFX-RS ). Вы можете экспериментировать с этими API, установив следующие переменные среды:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader
- Moltenvk:
ANDROID_EMU_VK_ICD=moltenvk
- Либеральность:
ANDROID_EMU_VK_ICD=portability
Известные проблемы
HAXM иногда может не сопоставить вулканскую последовательную память гостям и закрывает эмулятор. Это рассматривается в предстоящем обновлении HAXM.
grpc потоковой эмулятор (Linux)
Мы всегда пытаемся сделать эмулятор максимально универсальным, позволяя рендеринг и интерактивности ведущего графического процессора в самом широком диапазоне контекстов. У наших пользователей CI и удаленного рабочего стола есть следующие давние проблемы:
- Программная отправка команд ввода в эмулятор включает либо запуск команд оболочки ADB, которые могут испытывать высокие накладные расходы, либо использование консоли Telnet, которая быстрее, но может не работать с определенными конфигурациями сети.
- Пользователи CI часто запускают эмуляторы без головы, что может затруднить замечение проблем, которые требуют, чтобы экран был видимым или интерактивным.
- Пользователи удаленного рабочего стола часто не могут взаимодействовать с эмулятором при использовании рендеринга GPU хоста, потому что рендеринг графического процессора часто связана с не виртуальными дисплеями хоста.
Чтобы решить это, при запуске на машине Linux, эмулятор теперь обслуживает сервис GRPC. GRPC - это общая структура для RPC, которая работает над HTTP.
По умолчанию служба Emulator GRPC отключена, но вы можете активировать службу, используя следующую командную опцию, где <port>
- порт, который эмулятор должен обслуживать запросы GRPC (обычно 5556
):
-grpc <port>
После того, как услуга запускается, команды GRPC могут быть опубликованы от клиентов. Текущий набор команд позволяет как отправлять входные события, так и получение скриншотов. Эти команды помогают решить следующие проблемы:
- Команды ввода могут быть отправлены в эмулятор с низкими накладными расходами над HTTP. HTTP также позволяет отправлять команды в дополнительных конфигурациях сети.
- Команды экрана могут быть отправлены на запрос текущего экрана, даже если эмулятор работает без головы. Для интерактивности входные события также могут быть отправлены обратно в эмулятор.
- Пользователи удаленного рабочего стола могут запускать эмулятор без головы на главном дисплее с ускоренным рендерингом графического процессора при использовании GRPC для получения скриншотов и отправки событий ввода для взаимодействия с эмулятором.
Полный список доступных команд, см. Этот Protobuf .
Чтобы помочь вам начать работу с GRPC, мы предоставили некоторым образцам клиентов , на которые вы можете обратиться.
В настоящее время это включает в себя следующие образцы:
- Услуга на основе GO, который можно использовать для запроса состояний эмулятора.
- Приложение React, которое демонстрирует удаленную интерактивность с помощью скриншота и входных RPC. Этот образец требует Protobuf версии 3.7.0 или выше.
- Образец Python, который запрашивает конфигурацию виртуальной машины эмулятора, а затем отправляет серию команд.
28.0.25 (29 марта 2019 г.)
Это обновление включает в себя следующие улучшения и исправления:
Безголовный эмулятор сборка
Эмулятор было трудно настроить с помощью рабочих процессов Docker и других непрерывных интеграции (CI) из -за неявных ожиданий того, что система может поддерживать QT вместе с общими библиотечными зависимостями (среди других вопросов).
В качестве первого шага для решения этого мы представили вариант пускового показателя эмулятора с исполняемыми файлами QEMU, который не зависит от QT. На Linux все еще есть ссылка на libX11
, но мы надеемся вскоре удалить это.
Чтобы использовать эмулятор без головы, запустите эмулятор из командной строки, как обычно, но замените бинальный развод эмулятора на emulator-headless
. Для получения дополнительной информации см. Обновление выпуска Canary 28.1.8 .
- Исправлено подергивание и неправильный дисплей рамки на графических процессорах Intel при запуске системных изображений Android Q.
- Исправлены проблемы, где черный экран отображается при использовании изображений системы Android Q с шкурами Pixel 2 XL.
- Последние двоичные файлы BIOS теперь используются для запуска эмулятора. Это изменение может помочь уменьшить ошибки «запрос на выключение VCPU», которые иногда случаются при запуске эмулятора в Windows.
- Обратно зарегистрировал исправление для «неправильного дисплея при возобновлении проблем Android Q -систем из моментального снижения» .
- Пользователи испытывали «несанкционированные» проблемы эмуляторов из-за несовместимых изменений в ADB в платформе 28.0.2. Теперь вы можете безопасно использовать ADB из платформных инструментов 28.0.2 с эмулятором. Если у вас возникают проблемы с «несанкционированными» эмуляторами, сделайте следующие шаги по устранению неполадок:
- Выйдите из всех эмуляторов.
- Удалите как файлы
~/.android/adbkey
и~/.android/adbkey.pub
. - Запустите следующую команду:
adb kill-server
- Запустите следующую команду:
adb devices
- Протрите данные AVD.
- Перезагрузите эмулятор.
28.0.23 (29 января 2019 г.)
Это обновление включает в себя следующие улучшения и исправления:
Аудио вход хоста по умолчанию отключен
В недавнем сообщении о Reddit подробно описывается, как гостевая ОС Android всегда будет использовать звук Microphone хоста и, тем самым, позволил бы «OK Google» неожиданно работать. Мы сожалеем об этом и будем работать с командой Android, чтобы убедиться, что обнаружение горячего слова также отключено и на изображении системы.
Чтобы решить это, мы внесли следующие изменения:
- Фактические аудиоданные хоста теперь по умолчанию сжаты. Когда гость использует микрофон, молчание проходит вместо звука хозяина.
- Если вы хотите использовать аудиоданные хоста, вы теперь можете включить эту опцию, перейдя к расширенным элементам управления> микрофон и включив виртуальный микрофон, использующий аудио вход хоста . Эта опция автоматически отключена всякий раз, когда эмулятор перезапускается.
Обновления по расследованию использования процессора
Во время нашего проекта мраморного расследования мы заметили, что высокое использование ЦП на эмуляторе обычно подпадает от следующих трех категорий:
На IDLE: автоматические обновления приложений в изображениях Play Store
Мы обнаружили, что через случайные интервалы все установленные приложения обновляются, даже если пользователь не вошел в систему. В ходе процесса использование ЦП приводится к количеству ядер x 100% (обычно ~ 400%) в GMSCORE и DEX2OAT. Вы можете смягчить эту проблему, отключив обновления Auto App в приложении Play Store.
На простоях: обнаружение горячих слов
На главном экране и без каких -либо предварительных приложений может быть много процессора (~ 25% с шипами до 50%). Это вызвано обнаружением при горячих словах, которое постоянно пингает хоста. Вы не можете смягчить эту проблему, отключив аудио ввод хоста, потому что стоимость процессора в основном вызвана тем, что требуется для поездки к гостю от хоста. Тем не менее, вы можете смягчить эту проблему, отменив разрешения микрофона из приложения Google.
В то время как активно, иногда на холостом ходу: анимация
Третьим источником высокого использования ЦП является анимация. Мы обнаружили, что, оптимизируя стек графических драйверов, мы также можем уменьшить использование ЦП, даже если эмулятор не простаивает. Мы будем посвящены графическим оптимизациям драйверов постепенно как часть Marble Project.
28.0.22 (21 декабря 2018 г.)
Это обновление включает в себя следующие улучшения и исправления:
- Исправлена давняя проблема, в которой в некоторых настройках эмулятор MAC перезагрузился или паника ядра при QuickBoot Save. ( Выпуск 120951634 )
- При использовании отображаемого файла в качестве моментального снижения ОЗУ эмулятор теперь не смотрит отображение файла явно на выходе.
28.0.20 (11 декабря 2018 г.)
Это обновление включает в себя следующие улучшения и исправления:
- Исправлена проблема в окнах, которая заставила эмулятор заморозить на загрузке снимка с помощью определенных моделей Intel GPU.
- Исправлена проблема, которая вызвала
unauthorized
состояние устройства ADB при использовании нестандартного местоположенияANDROID_SDK_HOME
. - Исправлена проблема в Windows, из -за которой эмулятор сбой при загрузке системных изображений с отключенным процессором.
- Исправлена проблема дисплея с пикселированным эмулятором. Отставка должна теперь работать.
- Исправлена проблема на MacOS 10.14+, где управление мышкой камеры виртуальной сцены может стать слишком чувствительным из -за взаимодействия с новыми настройками безопасности.
- Исправлена ошибка в расчете часового пояса, которая может привести к спорадическому изменению часов эмулятора.
- Фиксированные ошибки рендеринга в различных приложениях Cocos2d и нереальных двигателей.
- Добавлена поддержка в эмуляторе для однорангового пира . Два эмулятора теперь могут поговорить друг с другом напрямую через Wi-Fi, если использовать новейшее изображение Pie Play Store. Для использования Wi-Fi-Peer-Peer начните два AVD с одинаковыми аргументами
-wifi-server-port
и-wifi-client-port
:-
emulator @<server-avd-name> -wifi-server-port 9999
-
emulator @<client-avd-name>-wifi-client-port 9999
-
- Добавлена поддержка дополнительных веб -камеров в Windows, взяв любые несовместимые размеры кадров и динамически изменяющий их размеры, чтобы соответствовать настройке камеры в госте Android.
28.0.16 (ноябрь 2018 г.)
Это обновление включает в себя несколько новых функций, улучшения существующих функций и исправления ошибок.
Использование ресурсов
В настоящее время эмулятор использует меньше оперативной памяти, особенно при использовании системных изображений с уровнем API 28 или выше. Эти системные изображения включают в себя улучшенное использование памяти для драйверов на стороне гостей.
Кроме того, мы также улучшили использование ресурсов в следующих областях:
- Снижение использования памяти эмулятора во время длительных тестов. Если вы по-прежнему испытываете проблемы с использованием памяти во время длительных тестов, пожалуйста, создайте проблему, которая описывает ваш вариант использования в выпуске .
- Снижение использования процессора при запуске приложений с анимацией.
- Исправлена проблема, в которой контекст Qemu AIO может протекать в Windows.
Запустите несколько экземпляров одного AVD одновременно
Теперь вы можете запустить несколько экземпляров одного и того же AVD и одновременно запустить их. Случаи, которые вы запускаете после первого экземпляра, только считываются, а их изменения в виртуальном диске гостя отбрасываются при выходе.
Чтобы запустить несколько экземпляров одного и того же AVD одновременно, запустите любые экземпляры после первого экземпляра из командной строки, используя флаг -read-only
.
Эта функция стала возможной благодаря копированию файлов QCOW2, связанных с записи, которые можно записаться на Android -изображение. Чтобы помочь вам управлять дисковым пространством, мы также объединили инструмент командной строки qemu-img
, чтобы позволить вам предварительно коммитировать файлы QCOW2, прежде чем запустить несколько экземпляров.
Кроме того, при использовании в тандеме с функцией моментальных снимков Ram, поддерживаемых File , несколько экземпляров AVD делятся основным снимком AVD QuickBoot в качестве общего источника копии при гостевой оперативной памяти. Это свойство означает, что экземпляры разделяют большую часть своей общей оперативной памяти. Используйте эту функцию, чтобы запустить тесты, которые требуют нескольких устройств для запуска параллельно.
Мы ценим ваши отзывы о возможных случаях использования, которые являются частью вашего обычного интерактивного или CI Workflow. Пожалуйста, создайте или повышают проблемы с трекером .
Снимки гостевой Ram, поддерживаемые файлами
Предварительное выделение и картирование гостевой оперативной памяти в качестве файла, эмулятор теперь может сохранять снимки QuickBoot во время выполнения, вместо того, чтобы выполнять всю работу на выходе. Если вы в настоящее время испытываете долгое время экономии при закрытии эмуляторов, позвольте этой функции улучшить вашу производительность QuickBoot. По умолчанию снимок QuickBoot сохраняется на выходе и снова загружается каждый раз, как приостановить и разбудить реальное устройство.
Поскольку Android Guest Ram теперь автоматически основан по умолчанию, если вы хотите определить состояние устройства и многократно загружать из этого состояния, вам необходимо сообщить эмулятору отбросить изменения после каждого сеанса. Вы можете сделать это следующими способами:
- При запуске эмулятора из командной строки используйте флаги
-no-snapshot-save
или-read-only
. - Перейдите к расширенным элементам управления> Снимки> Настройки и переключатель автоматического тока-текущего состояния на QuickBoot? к нет .
- Вам нужно будет перезапустить эмулятор после выбора этой опции. Если эмулятор установлен на авто-сале, вы можете запустить следующую команду, чтобы установить контрольную точку:
adb emu avd snapshot remap 0
После того, как вы запустите эту команду, снимки QuickBoot Emulator останется на этой контрольной точке. Запустите ту же команду снова, чтобы загрузить эмулятор с контрольной точки.
Снимки, которые сделаны и загружаются через функцию пользовательского интерфейса снимков, как они это делали, без картирования файлов.
Поскольку это большое изменение в том, как работает QuickBoot, мы очень ценим ваши отзывы о том, улучшает ли он QuickBoot и какие проблемы вы сталкиваетесь при его использования. Если вы испытываете проблемы, вы можете отключить эту функцию, добавив следующую строку в ваш файл ~/.android/advancedFeatures.ini
:
QuickbootFileBacked = off
Когда вы запускаете эмулятор с моментального снимка (либо используя опцию командной линии -snapshot
, либо запуска с моментального снимка в диспетчере AVD), эмулятор отключает как автоэконом, для QuickBoot Snapshots и сохранение QuickBoot Snapsots на выходе. Это снижает шансы на то, что QuickBoot Snapshot будет непреднамеренно перезаписан и избегает медленных путей отступления, которые не используют снимки QuickBoot, поддерживаемые файлами.
QEMU 2.12
Мы пережили наш вариант QEMU от QEMU 2.9 до QEMU 2.12. Это обновление включает в себя следующие изменения QEMU:
- https://wiki.qemu.org/changelog/2.10
- https://wiki.qemu.org/changelog/2.11
- https://wiki.qemu.org/changelog/2.12
Вот некоторые из заметных изменений, которые влияют на эмулятор Android:
- x86:
gdbstub
теперь предоставляет доступ к регистрам SSE. - Изображения дисков: блокировка изображений добавляется и включена по умолчанию. Многочисленные процессы QEMU не могут записать на одно и то же изображение, пока хост поддерживает блокировку OFD или POSIX, если параметры не указаны иным образом.
-
qemu-img: qemu-img resize
поддерживает предварительную среду новых частей изображения. - Сокращение QCOW2 теперь поддерживается в
qemu
иqemu-img
.
Доступность
- Исправлены проблемы с считывателями экрана и добавили лучшую поддержку для этих инструментов в записи экрана и пользовательского интерфейса снимка.
- Сделал быстрые значки уведомления о загрузке более доступными для пользователей, которые являются слепыми.
Графика
- Исправлена проблема с доступом к памяти, которая может возникнуть для указателей массива вершин OpenGL.
- Некоторые более старые графические процессоры не поддерживали OpenGL 2.1 или более (что требуется) или имели другие проблемы с надежностью. Эти проблемы могут привести к тому, что эмулятор сбой при запуске, замораживании или использование в настройке графического процессора по умолчанию. Эмулятор теперь автоматически переключается на рендеринг Swiftshader, если он обнаруживает, что эти GPU используются.
- Исправлена проблема, которая заставила эмулятор не публиковать правильный кадр -буфера, если
FBO != 0
был связан во времяeglSwapBuffers
. - Исправлена проблема, где виртуальный дисплей Android будет отображаться только в верхнем левом углу. Мы считаем, что это было связано с неправильно настроенной переменными среды QT. Эмулятор теперь переопределяет все переменные среды, связанные с масштабированием QT.
- Исправлена проблема, в которой эмулятор разбил в некоторых ситуациях при загрузке приложений GLES1 с моментального снимка.
- Исправлены проблемы с параллелизмом в OpenGL и запуск рендеринговых потоков, которые могут привести к двойным освобождению или повреждению данных.
- Эмулятор Android теперь поддерживает поддержку сжатой текстуры ASTC LDR (
GL_KHR_texture_compression_astc_ldr
) для системных изображений, которые используют уровень API 28 или выше. - Большинство современных графических процессоров теперь должны быть в состоянии запустить эмулятор с помощью OpenGL ES 3.x, включенного по умолчанию без использования флага функции
GLESDynamicVersion
. -
-gpu guest
(рендеринг программного обеспечения в госте) установил. Системные изображения для уровня API 28 или выше теперь автоматически переключаются на использование Swiftshader (-gpu swiftshader_indirect
). - Если эмулятор запускается из командной строки с использованием флага
-no-window
, рендерер по умолчанию теперь Swiftshader.
Расположение
- Эмулятор теперь может обновлять подшипник вместе с широтой и долготой положением. Виртуальный датчик магнитометра динамически регулируется к магнитному северу, выводя движение при воспроизведении файла GPX или KML.
- Скорость устройства теперь может быть установлена на странице местоположения.
- При воспроизведении файла GPX или KML скорость устанавливается автоматически и устанавливается на ноль, когда воспроизведение заканчивается.
- Высота больше не ограничена со своей точки зрения от -1000 до +10 000 метров.
- Исправлена проблема, в которой виртуальное местоположение GPS не будет периодически обновляться, если не было открыто расширенное окно управления.
Камера
В Windows теперь поддерживается больше веб -камеров, потому что эмулятор динамически изменяет размер кадров, которые доставляются из веб -камеры. Эта функция также предотвращает ошибки в доставке рамки от призыя к эмулятору.
Play Маркет
Чтобы решить проблемы с заканчивающимся на дисковом пространстве на изображениях Play Store, эмулятор теперь автоматически изменяет размер разделения userdata до 6 ГБ при запуске с AVD Fresh Play Store.
Общие улучшения качества и исправления
- Некоторые пользователи сообщили, что эмулятор работает медленно. Мы определили одну из возможных причин, когда каталог температуры для эмулятора заканчивается слишком большим количеством устаревших файлов внутри. В качестве обходного пути эмулятор больше не хранит файлы ADB LICELECT в этом каталоге. Однако это также может помочь удалить содержимое этой папки. Папка расположена в одном из следующих мест, в зависимости от вашей операционной системы:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macos или linux:
/tmp/android-<username>/*
- Windows:
- Если эмулятор не может запустить из -за недостаточной бесплатной оперативной памяти, теперь отображается сообщение об ошибке. Если вы находитесь в Windows и обратите внимание, что есть бесплатная оперативная память, но вы все еще не можете запустить эмулятор, плата за коммит может быть превышен. Для получения помощи с этой проблемой см. Страницу устранения неполадок эмулятора .
- Опция командной строки
-sysdir
теперь правильно переопределяет представленную каталог изображений системы. - Virtual Modem теперь поддерживает модель Info
+MAI
запрос. - Исправлены различные проблемы с утечками памяти, повреждением памяти и использованием ЦП. Если вы испытываете сбои, утечки памяти или другое высокое использование ресурсов, пожалуйста, создайте проблему с трекером выпуска .
- Исправлена проблема, которая появилась на MacOS 10.14, где использование гарнитур Bluetooth с эмулятором ухудшает звук во всем мире. Чтобы предотвратить это, эмулятор теперь избегает использования Bluetooth Audio при запуске на MacOS. ( Выпуск 37070892 )
- Исправлена проблема в Windows, где часы эмулятора не будут в правильном часовом поясе.
- Фиксированная медленя эмулятора и висит в системах Linux с вращающимися жесткими дискривами (HDD).
- Исправлены некоторые предупреждения компиляции, которые могут привести к коррупции стека на macOS.
- Фиксированные проблемы, которые могут привести к вводящим в заблуждение сообщениям о повешении.
- Исправлена проблема с уничтожением пулов потоков, которые могли бы вызвать сбой, если один из потоков не был успешно создан.
- Исправлена проблема на MacOS, где таймеры станут ненадежными, что приведет к подвесы и другому странному поведению. Если вы испытываете эмулятор, висящий на macOS, пожалуйста, создайте проблему с трекером выпуска .
- Исправлена проблема, в которой закрытие эмулятора отключила бы пользовательский интерфейс, но на самом деле не закроет эмулятор.
- Фиксированные проблемы, связанные с спорадическими авариями, в том числе прерывание из -за слишком многих случаев
/dev/urandom
. - Исправлена проблема, из -за которой эмулятор не начался после первого раза, если ADB был расторгнут насильственно.
- Сборка MIPS была удалена. Если вам все еще требуется MIP, пожалуйста, создайте проблему с трекером выпуска .
- Исправлена проблема, в которой соединения ADB могут стать коррумпированными при нагрузке с снижением.
- Исправлена проблема, в которой окно эмулятора будет иметь послеродовой или телепорт за пределами экрана при возобновлении снимка, где ориентация устройства отличалась от ориентации по умолчанию AVD.
- Исправлены проблемы, связанные с сбоями при сохранении снимков.
- На Linux BTRFS файловые системы могут вызывать экстремальные замедления, поскольку эмулятор автоматически сохраняет снимки и использует копию на записи для своих виртуальных дисковых устройств. Мы рекомендуем очистить каталог
~/.android/avd
и запустить следующую команду в пустого~/.android/avd
Directory:chattr +C
Это создает новые снимки в папке, где отключена копия на записи.
HAXM 7.3.2
Мы хотели бы упомянуть HAXM 7.3.2, потому что он должен быть установлен, чтобы недавние образы системы могли правильно работать на эмуляторе. HAXM 7.3.2 уже должен быть доступен в стабильном канале, а также может быть установлен вручную с https://github.com/intel/haxm/releases .
Вот пара проблем, которые решила эта версия Haxm:
- Исправлены случайные сбои гостей, которые используют недавнее ядро Linux (> = 4,6). Например, Ubuntu 18.04 ( #39 , #74 ).
- Исправлена ошибка эмулятора инструкций x86, которая может привести к сбою хоста ( #93 ).
32-разрядная установка Windows
Из-за низких затрат на использование и высокие расходы на обслуживание мы планируем установить 32-разрядную версию эмулятора Android, которая работает в Windows. Мы развернем план перехода до снятия и окончания жизни для 32-разрядной версии эмулятора Android. Тем не менее, мы активно ищем какие -либо отзывы или проблемы с этими будущими изменениями.
Пожалуйста, сообщите нам об этом в выпуске Tracker, если вы в настоящее время полагаетесь на 32-разрядную версию эмулятора Android, которая работает в Windows, и сообщите нам, как мы можем лучше всего работать с вами в будущем.
27.3.10 (август 2018 г.)
Это обновление включает в себя следующее исправление ошибки:
Исправление конфигурации размера оперативной памяти
Некоторые пользователи сообщили, что эмулятор работает медленно. Мы определили одну возможную причину, когда размер ОЗУ AVD в файле AVD config.ini
устанавливался неправильно.
Чтобы смягчить это, эмулятор увеличивает минимальный уровень ОЗУ для изображений, которые используют уровень API 26 или выше уровня по умолчанию Android Studio 1536 МБ. Если файл вашего AVD config.ini
не перечисляет hw.ramSize
в мегабайтах, пожалуйста, создайте проблему с трекером выпуска . Вы можете найти файл config.ini
в следующем месте:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (июль 2018 г.)
Это обновление включает в себя следующие улучшения и исправления ошибок:
Улучшенные сообщения об ошибках для платформы гипервизора Windows
У некоторых пользователей возникли трудности с диагностикой, почему платформа гипервизора Windows (WHPX) не смогла инициализироваться, когда они активировали эмулятор WHPX. Чтобы помочь вам диагностировать эти проблемы, мы добавили больше информативных сообщений об ошибках. You can enable these error messages by running the emulator from the command line using the -verbose
flag.
General fixes
- Fixed OpenGL errors that occur when loading a snapshot in the camera app.
27.3.8 (July 2018)
This update includes several new features, improvements to existing features, and bug fixes.
Снимки
You can now save multiple AVD snapshots for a given device configuration and choose which of the saved snapshots to load when you start the emulator.
Starting with Android Studio 3.2 Canary 13, each device configuration includes a control in the advanced settings in the Virtual Device Configuration dialog with which you can you can specify which AVD snapshot to load when starting the AVD.
To accommodate this expansion of the snapshot features, we have added a Snapshots category to the Extended controls dialog. This new pane contains controls for saving and loading AVD snapshots, including the controls for saving and loading the quick-boot snapshot that had previously been in the Settings pane.
You can edit the name and description of each saved snapshot.
For details, see Snapshots .
HAXM 7.2.0
HAXM 7.2.0 is now available in all channels.
This update includes bug fixes and improved support for large amounts of RAM. Also, with this HAXM update and Emulator 27.3 and later, snapshots load their contents into RAM on demand rather than loading the entire snapshot when the virtual device starts. This change should greatly decrease the time needed to load a snapshot.
For details, see Configuring VM acceleration .
27.2.9 (May 2018)
This update includes several new features, improvements to existing features, and bug fixes.
Screen recording
You can now record video and audio from the Android Emulator and save the recording to a WebM or animated GIF file.
The screen recording controls are in the Screen record tab of the Extended Controls window.
Tip: You can also open the screen recording controls by pressing Control + Shift + R (Command + Shift + R on Mac).
To begin screen recording, click the Start recording button in the Screen record tab. To stop recording, click Stop recording .
Controls for playing and saving the recorded video are at the bottom of the Screen record tab. To save the video, choose WebM or GIF from the menu at the bottom of the tab and click Save .
You can also record and save a screen recording from the emulator using the following command on the command line:
adb emu screenrecord start --time-limit 10 [path to save video] /sample_video.webm
Скриншоты
You can take screenshots from the command line with either of the following commands:
-
screenrecord screenshot [destination-directory]
-
adb emu screenrecord screenshot [destination-directory]
Screenshots are saved in PNG format.
Virtual scene camera and ARCore
Developing and testing augmented reality apps (AR) with ARCore is now even easier with the new virtual scene camera, which allows you to experiment with your AR experience within a virtual environment.
For information on using the virtual scene camera in the emulator, see Run AR apps in Android Emulator .
Google Play Store on Pixel device images
The Google Play Store is now enabled for Pixel and Pixel 2 device images. This is indicated in the AVD Manager in Android Studio 3.2 and later with the Google Play logo in the Play Store column. AVDs with Google Play Store enabled have a Google Play tab in the Extended controls dialog that provides a convenient button for updating Google Play services on the device.
Снимки
You can now load a Quick Boot snapshot without restarting the emulator. To load a snapshot, open the Extended Controls window to the Settings page and click the Load Now button.
We have made many improvements to the loading and saving of snapshots to improve efficiency of resource usage and to minimize the time that each operation takes. If you still experience unusually long saves, please file an issue , providing details of your CPU, RAM, and settings of any antivirus / firewall / security software that is running.
Rendering with Skia
When using images for API 27 or later, the emulator can render the Android UI with Skia , which can render more smoothly and efficiently.
For now, use of Skia requires that you explicitly enable it.
To enable Skia rendering, use the following commands in adb shell:
su setprop debug.hwui.renderer skiagl stop start
Камера
On Windows, Android Emulator now uses Media Foundation as the webcam back end, which greatly improves performance and frame rate for webcam capture, up to 720p 30 FPS.
On Mac, you can now use webcam0 and webcam1 together.
Разнообразный
The -phone-number-prefix
command-line option has been changed to -phone-number [number]
, which allows setting of the full phone number.
You can now use alphanumeric SMS addresses.
Fixes
- The Linux version of the Android Emulator is now built using a modern Clang C++ toolchain. This change fixes the issue of the emulator failing to start due to libGL and libstdc++ errors.
- Fixed several causes of crashes and hangs.
- To avoid crashes and hangs caused by not having enough free disk space, the emulator now checks for sufficient free disk space on startup, and will not start unless at least 2 GB is free.
- Fixed an issue that prevented some Unity games from rendering.
- Fixed DNS issue that caused the emulator to be unable to connect to the network.
- Fixed an issue that caused changes to the internal storage allocated to an AVD through the Virtual Device Configuration dialog to not work.
- Fixed an issue of many adb processes being created and not properly shut down.
- Fixed an issue that caused the rotate buttons and other parts of the UI to become unresponsive unless the Extended controls window was open.
- Fixed an issue that caused copy and paste from the host to not work unless the Extended controls dialog was opened at least once.
- The frameless emulator's resize rectangle has been updated to better follow the emulator's visual theme.
- Telephone and SMS are now properly deactivated when airplane mode is on.
- Fixed an issue that caused SMS and cellular functionality to be disabled after loading a snapshot.
- You will no longer receive false warning messages saying
“Unable to open... \pstore.bin. Permission denied.”
- Fixed an issue that prevented re-positioning the AVD on some Mac screens.
- Fixed issues with flickering and blank screens on newer MacBook Pro computers when running AVDs with Pixel 2 XL skins.
- Fixed issues with blank screens when switching into zoomed mode while a frameless emulator was active.
- Fixed an issue that caused the device skin and emulator contents to scroll out of sync when zoomed in.
If you are still experiencing hangs or other instabilities, please file an issue .
27.1.12 (March 2018)
This update includes fixes for the following issues:
- Bluetooth audio quality degraded after starting the emulator. ( Issue 37095756 )
- Locations sent to one emulator were sent to all of them. ( Issue 73450633 )
- GPS location set using the console was overridden by values set using Extended Controls > Location in the graphical user interface. ( Issue 73471760 )
If you are still experiencing hangs or other instabilities, please file an issue .
With this update, a current system image, and a preview version of Android Studio, you can use Android Emulator to run augmented reality applications built with ARCore. For detailed requirements and instructions, see Run AR apps in Android Emulator .
27.1.10 (February 2018)
Camera capture resolution
720p frames can now be captured from an attached webcam.
To work with Android 8.1 (API level 27) and higher system images, any attached webcam must have the capability to capture 720p frames.
Fixes
- Fixed an issue that caused webcam capture to sometimes output a distorted or all-green image.
- Fixed an issue that made it possible to see the following message even when there was no actual hang: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".
If you are still experiencing hangs or other instabilities, please file an issue .
27.1.7 (February 2018)
Frameless emulator window:
By default, emulators with device skin files are now shown without a surrounding window frame. To show the surrounding window frame, enable Show window frame around device in the Settings pane of the Extended Controls window.
Quick Boot improvements to make working with AVD snapshots more efficient:
- You can save an AVD snapshot at any time using the Save Now button in the Settings pane of the Extended Controls dialog box.
- The emulator reduces the time that it takes to save a snapshot in many cases by saving only the difference between the current state and the previously saved snapshot.
For details, see the Quick Boot documentation.
The emulator has been updated to use QEMU 2.9.
Some notable improvements include the following:
- Optimized I/O and finer-grained I/O thread locking for greater performance.
- Fixed bugs since QEMU 2.8 (26.1.4).
- New implementation of the HAXM back end.
See the full list of changes in the QEMU 2.9 change log .
Swiftshader implementation conforming to OpenGL ES 3.0:
The emulator's Swiftshader renderer now conforms fully with OpenGL ES 3.0. For details of the Swiftshader renderer, see the Settings > Advanced section of Extended Controls .
Fixes
- Fixed an issue where clipboard sharing was not working unless the Enable clipboard sharing option was toggled off and on.
- Fixed a hang when using the Swiftshader rendering back end with low-resolution AVDs.
27.0.5 (January 2018)
ANGLE for rendering on Windows is now disabled by default.
If ANGLE works better for you, you can re-enable it with command line flag
-gpu angle_indirect
. Or, open the Extended controls window, navigate to Settings > Advanced , and select ANGLE D3D11 for the OpenGL ES renderer setting.Fixed an issue where Shift+B does not type a capital B character.
27.0.2 (December 2017)
New Quick Boot feature provides faster emulator start times, based on a snapshot of your AVD instance.
Quick Boot is enabled by default for all AVDs. Although the first time you start an AVD it must perform a cold boot (just like powering on a device), all subsequent starts are fast and the system is restored to the state at which you closed the emulator (similar to waking a device).
If you want to control when the emulator saves a snapshot, open the emulator's Extended controls window and click Settings . Here, you can select one of the following settings for Save quick boot state on exit :
- Yes : Always save quick boot snapshot when you close the emulator. This is the default.
- No : Never save quick boot snapshot; always perform a cold boot.
- Ask : Prompt whether or not to save quick boot snapshot when you close the emulator.
Your selection applies only to the currently open AVD.
For more information, see the Quick Boot documentation .
Added support for Mac OpenGL ES 3 (for system images using API level 24 and higher, Google APIs, and the x86 ABI).
For added stability in OpenGL ES 2+ apps, emulator now uses OpenGL core profile if available.
New options for rendering with Swiftshader / ANGLE:
-
-gpu swiftshader_indirect
: Faster, more stable variant of Swiftshader that works with Quick Boot. -
-gpu angle_indirect
(Windows only): More stable variant of ANGLE D3D that also works with Quick Boot.
The older
-gpu swiftshader
and-gpu angle
options are now deprecated. In the Extended controls window, the "SwiftShader" and "ANGLE" options for the OpenGL ES renderer setting in Settings > Advanced now use the*_indirect
variants.-
Various other bug fixes.
26.1.4 (August 2017)
This is a minor release with bug fixes and the following improvements to GPU configuration:
- Enable boot animation when running on ANGLE renderer
- Disable GLES3 when running on ANGLE renderer
26.1.3 (August 2017)
This is a minor release with bug fixes, performance improvements, and small feature changes.
- This version is now required to use the latest Android 8.0 system images. They are Treble-compliant , featuring separate
vendor.img
partitions. - New HAXM 6.2.0 now available (check the SDK Manager) and includes the following updates:
- Improved memory usage. The peak working set of memory pinned by HAXM is no longer equal to the size of the AVD's RAM; instead, memory is paged in on demand. This should help the emulator run more reliably on machines with lower amounts of RAM.
- The emulator with HAXM 6.2.0 can now boot faster on macOS, skipping a lengthy initialization phase.
- Improvements to GPU configuration
- Fixed issues with black screen on boot when performing guest-side software rendering by falling back to host-side software rendering with Swiftshader. Latest revisions of system images for API levels 19 - 25 with Google APIs should have working guest-side rendering.
- Fixed an issue where the emulator was switched to a software renderer due to detecting the presence of older Intel GPUs, but the emulator was actually running on a discrete GPU. Which GPUs will be switched to use ANGLE or Swiftshader rendering is determined as follows:
- Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D drivers. Users with Intel HD Graphics 3xxx and older will use Swiftshader.
- Some users reported the inability to use API level 25 images because of a bug in which "Pixel Launcher keeps stopping." This seems to be a driver issue in some Intel HD 4xxx models. So they will be switched to use ANGLE automatically.
- For best results with GPU emulation, we recommend either to use a discrete NVIDIA or AMD GPU, or a newer Intel GPU (Iris, HD 5xxx, HD 5xx/6xx).
- Fixed an issue where the emulator would fail to start (OpenGL emulation failed to initialize) if the AVD was configured with
hw.gpu.mode=host
and the emulator was launched in a remote desktop client. - Clarified "OpenGL ES API level (requires restart)" settings; added an option to downgrade from OpenGL ES 3 to OpenGL ES 2 if experiencing issues or needing to test on lower OpenGL ES API levels.
- Mesa renderer is deprecated;
hw.gpu.mode=mesa
will now be automatically switched to use Swiftshader on the host.
- Improvements for macOS:
- The emulator is now fully compatible with macOS 10.13 High Sierra through either Hypervisor.Framework or HAXM 6.2.0.
- Hypervisor.framework is now enabled by default on macOS for 32-bit x86 images to improve performance and macOS compatibility. If you experience issues with it specifically, please file a bug report and append
HVF = off
to~/.android/advancedFeatures.ini
(create this file if it doesn't exist). - Fixed issues with no internet / failure to attach debugger while using Hypervisor.framework.
- To enhance compatibility and performance of webcam capture, the QTKit-based camera capture has been replaced with a buffered one based on AVFoundation.
- Added support for Wi-Fi in some system images (currently only API level 25). An access point called "AndroidWifi" is available and Android automatically connects to it. Wi-Fi support can be disabled by running the emulator with the command line parameter
-feature -Wifi
. - Some users raised the concern that the fixed-size Play Store system images did not have sufficient storage. As such, we've increased the size to 2 GB by default (up from 800 MB).
- Added a keyboard shortcut (Ctrl+Shift+U) to open the bug reporting UI page directly from the settings page.
- Fixed an issue where if an older CPU with Intel x86 EPT but without UG was used, the emulator would fail to boot if more than one core was configured.
- Fixed an issue where HyperV would be improperly detected if the emulator was itself running in a Xen hypervisor.
- Fixed an issue where the emulator would crash on start in some Linux configurations.
26.1.2 (July 2017)
This release includes new features and performance improvements.
Added the ability to define a custom HTTP proxy configuration in the extended controls (click More, and then click Settings and Proxy ). By default, the emulator uses the Android Studio HTTP proxy settings, but this screen allows you to define a manual proxy configuration.
Added VNC support for guest mode GPU so emulator can be remotely viewed and controlled. For example, you can launch the emulator and let VNC listen to port 5901 as follows:
- Execute:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Open a VNC viewer, such as tightvnc viewer, to connect to port 5901.
To use Mac's built-in screen sharing client, a VNC password is required when launching the emulator. To set a password, use this command:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
And then enter
change vnc password
into the console, and enter a password.
Android O is not currently supported for VNC mode.
- Execute:
Added a File a bug button in the extended controls Help screen (Click More, and then click Help and Emulator help ). Clicking File a bug opens a dialog where you can see the bug report details such as the screenshot, the AVD configuration info, and a bug report log. You can then save the report for yourself or report emulator issues .
Added gyroscope sensor to emulator and virtual sensors panel. This requires a system image with gyroscope support to work (currently API level 24 and 25).
Added host-preferred DNS to Qemu DNS list on Windows, when multiple virtual network interfaces on the host introduce multiple DNS addresses which are not functional for the emulator.
Added experimental macOS Hypervisor.Framework support for 32-bit x86 images on macOS 10.10+ through server flags, which should improve boot time and performance.
- If you experience problems with it, add the line
HVF = off
in~/.android/advancedFeatures.ini
.
- If you experience problems with it, add the line
OpenGL ES 3.x is now enabled by default for system images and host GPUs that support OpenGL ES 3. Currently, only Android O (API level 26) and Windows/Linux hosts support OpenGL ES 3.
- If you experience problems with OpenGL ES 3, add the line
GLESDynamicVersion = off
in~/.android/advancedFeatures.ini
.
- If you experience problems with OpenGL ES 3, add the line
Emulator now uses offscreen OpenGL FBOs for all rendering except final display image posting, which should help with color consistency issues across platforms.
After collecting data on sudden emulator slowdown issues, we have determined that the problem may have to do with some interaction between older Intel OpenGL drivers and Windows updates. As such, users with Intel HD 4000, 3000, 2000 (and related GPUs) now have rendering set by default to either a D3D renderer (ANGLE) or Swiftshader (software renderer).
26.0.0 (March 2017)
This release is compatible with API level 26. It also includes a number of performance improvements and bug fixes.
Minor revision 26.0.3 (May 2017)
- Adds online-updateable feature flags for quickly addressing issues stemming from problematic hardware configurations. This allows Google to roll out fixes and features that are dependent on user configurations by updating server-side flags. If you notice issues with specific hardware, please report a bug so we can investigate the problem.
- New support for rotary input for Android Wear API level 25 system images. To emulate the rotary input dial on a Wear device, click the Rotary Input tab on the extended window.
- The Crash Reporting dialog is now resizable and no longer resets When to send crash reports to Ask without input.
- The 32-bit emulator now requires that the maximum AVD RAM size be less than or equal to 512 MB, in order prevent the emulator from running out of room in the 2 GB virtual address space.
- Adds support for absolute paths in emulator images.
- Adds a new tab in the extended window for Google Play Store images that displays the Play Services version and a button to check for updates to Play Services.
- Adds a dropdown to select the OpenGL renderer on the Emulator Settings page. If you are experiencing issues with the OpenGL driver on a Windows machine, try using the ANGLE (D3D11) or ANGLE (D3D9) options (requires a restart). If you are experiencing issues with the OpenGL driver on a non-Windows machine, try using the Swiftshader software renderer (requires a restart).
- Fixes a rare crash on exit when the emulator receives both
exit
andminimize
commands. - Fixes a scaling issue when changing displays on a Mac machine. ( Issue 268296 )
- Fixes an issue where the emulator takes 300% of the CPU and holds it after resuming the host computer from sleep or when the emulator has been running for a long time.
- Fixes a crash when the emulator is shutting down.
Updates with HAXM v6.1.1 (March 2017)
Note: HAXM v6.1.1 is available for Mac users through the SDK Manager as of March 30th, and will be available for Windows users soon.
Version 26.0.0 of the Android Emulator supports HAXM v6.1.1, which includes the following updates:
- Enables Performance Monitoring Units (PMU) emulation. ( Issue 223377 )
- Fixes coexistence with VirtualBox and Docker on Macs. ( Issue 197915 )
- Revises the installation error message displayed when the installer fails to detect Intel VT-x on Windows, usually because Hyper-V is enabled.
- Adds support for accelerating the Android Emulator in a Hyper-V-based Windows VM. This update requires that the host Hyper-V instance (the one that manages the Windows VM/guest) use the latest version of Hyper-V with nested virtualization enabled. Hyper-V must be disabled in the guest Hyper-V instance (the Windows VM).
Зависимости
- Android SDK Platform-Tools revision 25.0.4 or later.
- Android SDK Tools revision 26.0.0 or later.
New features and bug fixes
- Compatible with API level 26.
- Fully GLES 2.0 compliant. Given a host GPU that has conformant desktop OpenGL drivers, the emulator now passes 100% of the Android CTS dEQP-GLES2
mustpass
list . This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images. - Improved video playback performance. The emulator now stores all video color buffers in host/guest shared memory and performs necessary final YUV to RGB conversion in the GPU. 1080p30 should be well within reach of most systems now. This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images.
- The emulator now correctly unregisters itself from the
adb devices
list on exit and closes open TCP ports on Linux machines. - adb connections are now more reliable. A running emulator is detected faster and doesn't go into “offline” or “unauthorized” status anymore.
25.3.0 (March 2017)
As of this release, the Android Emulator will be released separately from the SDK Tools. This release contains a variety of performance improvements, new features, and bug fixes.
Minor revision 25.3.1 (March 2017)
- Fixed a crash occurring on some GPU configurations by disabling GLAsyncSwap by default. This feature was added in 25.3.0 to improve frame timing and frames per second for games and video, but causes the emulator to fail on some unknown machine configurations. You can manually enable it by opening the
android_sdk /emulator/lib/advancedFeatures.ini
file and settingGLAsyncSwap = on
.
Зависимости
- Android SDK Platform-Tools revision 24 or later.
- Android SDK Tools revision 25.3.0.
New features and bug fixes
- Updated emulation engine to QEMU 2.7, including all recent bug fixes, improved performance, and new features.
- New IPv6 support.
- The emulator now uses SwiftShader as a pure software renderer on the host.
- Android Pipe performance improvements: Android Pipe, the main communication channel between the emulator and Android OS, is now an order of magnitude faster, has lower latency and offers better multi-threaded performance. This causes a number of performance improvements for the emulator, including:
- Improved ADB push/pull speed.
- Better 3D acceleration support.
- Increased overall responsiveness of the emulator.
- Improved graphics performance.
- The emulator now uses GPU-side buffers (glBindBuffers / glBufferData) when the guest requests them, decreasing CPU overhead in some apps.
- Improved audio support.
- Faster disk I/O: The emulator now uses separate threads to dispatch disk I/O, resulting in lower latency and better throughput (~1.5x sequential I/O speed, ~5x random access I/O speed). This also reduces the number of flushes to disk, resulting in much lower physical device load.
- The emulator now uses sparse files for disk boots on Windows machines, speeding up both first boot and "wipe-data" boots. When creating or resetting an AVD, the emulator now writes 100-200 MB of data to disk, instead of 2 GB or more.
- Various GUI enhancements:
- The emulator now uses Qt 5.7.0, which includes bug fixes and performance improvements.
- UI initialization no longer attempts to load all emulator executables as Qt plugins, so it's dramatically shorter, especially on HDDs.
- UI interactions are now faster and smoother, including rotation, window resizing, and extended controls window loading and closing.
Android Emulator is included with Android Studio.
Versions of the emulator prior to 25.3.0 were distributed as part of the Android SDK Tools.
To ensure you have the latest version, check the SDK Manager for updates.
To download previous versions of Android Emulator, see the Emulator download archive .
For release notes for Emulator versions prior to 25.3.0, see the Android SDK Tools release notes .
For known issues and troubleshooting, please see Emulator Troubleshooting .
35.2.10 (Oct 1, 2024)
- New Pixel AVDs added including Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, and Pixel 9 Pro Fold
- Added new Tablet system image for Vanilla Ice Cream (API 35)
35.1.20 (Aug 29, 2024)
- Added Pixel 8a AVD
- Various bug fixes for foldable
- Qt update and fixes to qt related crashes and hangs
- [Bug Fix] Fix to crashes and freeze on Windows with applications using Vulkan
34.2.16 (July 9, 2024)
- [Bug Fix] UI freezes that occur on Pixel Fold during fold/unfold
- [Bug Fix] Incorrect display of Android version as Android Vanilla Ice Cream Preview instead of API 35 on Mac M1.
- [Bug Fix] Issue #296162661 : HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE returns true on Pixel C tablet emulator
34.2.15 (May 31, 2024)
- Various crash fixes related to swangle mode and advertiser cleanup
34.2.14 (May 20, 2024)
Tested with Android Studio Jellyfish Stable Patch 1.
- [Bug Fix] Snapshot sometimes hangs on embedded emulator
- [Bug Fix] 'No' and 'Cancel' buttons are not working properly on snapshot
- [Bug Fix] Directional pad buttons are not working
- [Bug Fix] Fixed the issue seen on Windows preventing the emulator to start in some conditions when using GPU modes with ANGLE, and returning the error message “Failed to initialize GL emulation” in the log. Note that starting the emulator by command line with the option
-gpu swangle_indirect
might still generate this error with this version. If you still want to start the emulator using a command line on Windows with Software graphics rendering with this version, please use-gpu swiftshader_indirect
- [Bug Fix] Location shortcut on keyboard loads an unusable map
- [Bug Fix] While setting location, the "save route" dialog is missing
34.2.13 (April 30, 2024)
Tested with Android Studio Jellyfish Stable.
- Update to Qt 6.5.3
- Compatibility for the Google Maps API updates used in the Location features in the Extended Controls of the emulator, occurring at the end of May.
- High impact crash fixes
- Various fixes to Pixel AVDs
- Update the graphics library used for software rendering
- [Bug Fix] Issue 225541819 Starting Chrome crashes Emulator on x86_64
- [Bug Fix] Issue 314614435
-http-proxy
switch is parsed incorrectly
34.1.20 (April 1, 2024)
Tested with Android Studio Iguana Stable.
- [Bug Fix] Issue #314614435 : Fix issue where
-http-proxy
switch is parsed incorrectly
34.1.19 (March 7, 2024)
Tested with Android Studio Iguana Stable.
- [Bug Fix] Issue #312677259 : Fixed screen freeze in embedded emulator after resizing window.
34.1.18 (Feb 29, 2024)
Tested with Android Studio Iguana Stable.
- Devices were added to Emulator including:
- Pixel Fold
- Pixel Tablet
- Pixel 8
- Pixel 8 Pro
- Pixel 7a
- gRPC Integration Test: gRPC endpoints are now available to instrumented tests running inside the emulator that would enable testing of realistic scenarios. This feature enables developers to safely interact with the gRPC endpoint hosted by the Android Emulator from within Android instrumentation tests.
- Various bug fixes
33.1.24 (Dec 28, 2023)
Tested with Android Studio Hedgehog Stable and Iguana Beta 1.
- Fix Emulator webcam issue that doesn't allow screen record in mp4 format.
- Fix Emulator crash on the Pixel Fold AVD when it is unfolded during a screen recording.
- Fix issue where Pixel Fold shows a different phone skin with a detached keyboard and is unusable (fixed on Windows, Mac Intel, and Linux)
- Fix glitch in appearance in Virtual sensors in Standalone mode (fixed on Windows, Mac Intel, and Linux)
- Provide fixes for some crashes, especially while closing the emulator, were fixed
33.1.23 (Nov 30, 2023)
Tested with Android Studio Giraffe Patch 4 and Hedgehog Stable.
- New foldable implementation to better emulate Pixel Fold device, works with latest API 34
- Graphics backend upgrade: We've implemented the gfxstream protocol for our graphics backend, This enhancement elevates the overall graphics performance and stability of your system. In addition, introducing Vulkan 1.3 support beginning with system image with API 34
- Feature Request : Option to disable pinch-to-zoom gesture or reassign its hotkey
- [Bug Fix] Issue #302562962 Fix Emulator webcam crash when using MacOS sonoma
- [Bug Fix] Issue #293503871 Fix issue where 'Microphone' setting is not saved when Emulator is restarted
- [Bug Fix] Issue #270386314 Fix animation error where sidebar stays open once the AVD screen minimized
- [Bug Fix] Issue #154896775 Fix bug submission tool
32.1.15 (Aug 29, 2023)
Tested with Android Studio Giraffe Patch 1 and Hedgehog Canary 16.
- Comply with GAS HW requirements for Sensors in AAE Emulator
- [Bug Fix] Issue #266201208 Hebrew SMS is not sent on API 33
- [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up on API 29 and 30
- [Bug Fix] Issue #228201899 Can't see google maps inside Android Emulator Extended Controls
32.1.14 (June 27, 2023)
Tested with Android Studio Hedgehog Canary 8, Giraffe Beta 5, and Flamingo Stable.
- Fix emulator camera orientations & distortions.
- [Bug Fix] Issue #257097404 "Emulator doesn't show correct time after the host is waken up". This bug is still reproducible for API 29 and API 30.
- [Bug Fix] Issue #243456582 "Android releases after API 30 might not start correctly in emulator on Mac M1 machines"
32.1.13 (May 22, 2023)
Tested with Android Studio Hedgehog Canary 2, Giraffe Beta 1, and Flamingo Stable.
- Add support for Pixel Fold and Pixel Tablet AVDs.
- Improve gLinux crash issue.
- [Bug Fix] Issue #215231636 "Emulator with API above API 30 not working in Intel 12th gen processor".
- [Bug Fix] Issue #275397905 Highlevel of crash on Android Emulator M1 when moving cursor focus in and out of the emulator repeatedly.
- Known issue with AVD launch Issue #281725854 . Please see Emulator Troubleshooting for more information.
32.1.12 (March 21, 2023)
Tested with Android Studio Giraffe Canary 10, Flamingo RC, and Electric Eel Patch 2.
- [Bug Fix] Issue #267647323 Network doesn't work on Emulator started from Android Studio
- [Bug Fix] Issue #268498686 Emulator screen is flickering
- [Bug Fix] Issue #270034824 Emulator performance degraded after updating to version 33.1.1
- [Bug Fix] Issue #225541819 Starting Chrome crashes Emulator on x86_64
- [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up
- Add crash reporting for Apple M1 devices
32.1.11 (February 8, 2023)
Tested with Android Studio Giraffe Canary 2, Flamingo Beta 1, and Electric Eel Patch 1.
- Network speed optimizations
- Mouse support in Embedded Emulator
- Virtio-snd improvements
- Disable the usage of symlinks while unzipping the Android Emulator during installation
- Fix crash in emulator-check
31.3.14 (December 13, 2022)
Tested with Android Studio Dolphin, Electric Eel RC1, and Flamingo Canary 9.
- [Bug Fix] Fix AVD crashes that occur when logging in to Play Store.
31.3.13 (October 27, 2022)
Tested with Android Studio Dolphin, Electric Eel Beta 2, and Flamingo Canary 5.
- [Bug Fix] Issue #249948338: Time zone parameter not functioning
- [Bug Fix] Issue #249366543: Emulator -dns-server option does not work after API 31
31.3.12 (October 10, 2022)
Tested with Android Studio Dolphin and Electric Eel Beta 1.
This update includes the following improvements and fixes:
- [Bug Fix] Issue #247843000: AVD relative path handling error
- Increase disk size for API 24 and later
31.3.11 (September 23, 2022)
Tested with Android Studio Dolphin and Electric Eel Canary 10.
This update includes the following improvements and fixes:
- [Bug Fix] Embedded Emulator AVD crash on Extended Controls Window
- [Bug Fix] Issue #183139207: Audio issues associated with Emulator activating microphone
- [Bug Fix] Issue #229764024: AVD sticky touch bug that results in UI behavior issues
- [Bug Fix] Error with launching API 33 AVD on Mac M1.
- [Bug Fix] Issue #243053479: Slow network speed after updating Emulator
- [Bug Fix] Issue #244617627: Nonfunctioning Maps location on Windows and Linux
- [Bug Fix] Issue #232971796: Nonfunctioning “call device” button on the Extended Controls > Phone page
- Update Android Emulator to minigbm
- Migration of build scripts to Python3
31.3.10 (August 18, 2022)
Tested with Android Studio Dolphin Beta 5 and Electric Eel Canary 9.
Standalone downloads of the emulator are now available. If you're experiencing any issues or crashes with this latest stable release, please file a bug and consider downloading a previously working version from the emulator download archives .
This update includes the following improvements and fixes:
- Better unicode path support on Windows
- Better handling of emulator shutdown so a new launch of the same AVD could succeed.
- Updated foldable AVD design and default settings
- Updated Wear emulator buttons
- gRPC audio streaming improvements
- Resizable emulator console command added
- Chrome Fix for API 31
- [Bug Fix] Google Account Auth Failed with GmsCore v21.42.18
31.2.10 (April 20, 2022)
Tested with Android Studio Dolphin Canary 8 and Chipmunk RC 1.
This update includes the following improvements and fixes:
- Add utility to load Vulkan functions with fallbacks
- [Bug Fix] Fix gcc8 build error
31.2.9 (March 23, 2022)
Tested with Android Studio Dolphin Canary 7.
This update includes the following fix:
- [Bug Fix] Ignore memory pressure when saving snapshot on M1
31.2.8 (February 7, 2022)
Tested with Android Studio Bumblebee Patch 1 and Chipmunk Canary 6.
This update includes the following improvements and fixes:
- [Bug Fix] Unable to sign in to the apps
- [Bug Fix] Issue #215368358: "adb reboot" on Intel platform will crash avd with "vcpu shutdown request"
31.2.7 (February 1, 2022)
Tested with Android Studio Bumblebee Patch 1 and Chipmunk Canary 6.
This update includes the following fix:
- [Bug fix] Emulator hanging error on M1 machines.
31.2.6 (January 20, 2022)
Tested with Android Studio Arctic Fox, Bumblebee Beta 4, and Chipmunk Canary 6.
This update includes the following improvements and fixes:
- Added wear buttons to Wear OS emulator.
- Made all vehicle properties editable in VHAL tab.
- [Bug Fix] Google Account Auth Failed with GmsCore v21.42.18.
- [Bug Fix] Netshaper didn't work well with VirtioWifi.
- [Bug Fix] Event mouse console command didn't work.
- Added KVM check for local AVD creation.
31.1.3 (January 18, 2022)
This update includes the following improvements and fixes:
- Enabled console ports for Fuchsia.
- When resizing a multi-display window, orientation is ignored.
- Wi-Fi: Added support for filtering out unicast packets based on MAT mac address.
- Wi-Fi: Fixed crash when vmnet is in use.
30.9.5 (December 15, 2021)
This update includes the following improvements and fixes:
- Added ability to easily resize to a desktop or tablet sized window.
- Added support for multi-touch input from compatible host devices.
- VirtioWifi: Added support for tap network.
- Enabled Rotary Input for Wear System Images.
- Fixed the gRPC audio configuration issue.
- Updated SensorReplay Emulator Playback to support standard Android sensors.
- Connected the emulator to peripherals and devices using USB with USB pass through.
30.4.5 (February 23, 2021)
This update includes the following improvements and fixes:
- macOS: Fixed issues with audio input distortion.
- Added support for virtio-vsock in userspace.
- Future system images will use virtio-console for logcat and kernel messages.
- Speed up Vulkan rendering.
- Added support for snapshot debugging on test failure.
- virtio-gpu: updated definitions to support latest blob resource enums.
- Added snapshot support for the 'asg' type graphics transports.
- macOS: Added support for building against macOS SDK 11.1+.
- KVMclock enabled by default on newer system images.
- Added support for a heart rate sensor to Wear emulators.
- Removed libportability Vulkan backend.
- Added support for more features in modem simulator.
30.0.26 (August 16, 2020)
This update includes several new features, improvements to existing features, and bug fixes.
Foldables support with virtual hinge sensor and 3D view
Added support for hinge sensors for foldable devices. This requires a future Android 11 system image and AVD configuration. 3D foldable view and hinge parameters are now integrated with the existing foldable presets. The following can be a used with, for instance, the 7.3 foldable AVD's
config.ini
file:hw.sensor.hinge = yes hw.sensor.hinge.count = 1 hw.sensor.hinge.type = 1 hw.sensor.hinge.ranges = 180-360 hw.sensor.hinge.defaults = 180 hw.sensor.hinge.areas = 54.7-0 hw.sensor.posture_list=4, 3 hw.sensor.hinge_angles_posture_definitions=210-360, 180-210 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
Foldable devices now also carry a sub-type parameter. The
config.ini
propertyhw.sensor.hinge.sub_type = hinge/fold
is now available. See the Developing for Android 11 with the Android Emulator blogpost to read more.Hinge sensor is now enabled by default.
If a foldable device is configured, the emulator now sends hinge angle sensors updates and posture changes to the guest. Existing foldable devices will now update hinge sensor angle and posture when the toolbar's fold or unfold buttons are pressed.
Emulator for ARM64 hosts
Linux emulator source code now supports cross compilation from x86_64 to arm64 hosts, enabling running arm64 system images with KVM virtualization. Currently, only
-gpu swiftshader_indirect
(Swiftshader arm64 host rendering) is supported, but a compatible set of host GPU libEGL/libGLESv2 libraries may also be used by replacing lib64/gles_swiftshader with them and then relaunching with-gpu swiftshader_indirect
. Snapshots may also not be working (add-no-snapshot
to the command line). Инструкции:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Support for Apple Silicon is in progress.
virtio-gpu support
- Added support on the host side for upcoming virtio-gpu host coherent blob resources.
- Due to how emulator rendering works, we now process virtio-gpu virtqueue in the vcpu thread (because rendering is offloaded to other threads anyway). virtio-gpu rendering will be enabled in a future system image and emulator version.
- In a future system image the emulator will be able to run all graphics with a virtio-gpu based stack.
Other new features and enhancements
- USB passthrough is now available on Windows using
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (This should also have been workng on Linux and macOS already) - Updated WebRTC libraries to M83.
- The emulator now supports audio streaming in containers over WebRTC.
- darwinn pipe endpoint has been removed.
- CUDA VPx decode for video is now available, if CUDA VPx decode is available in hardware, via the environment variable
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
. - On macOS, SSE 4.1 and 4.2 are now available from inside the Android guest.
- On macOS, INVTSC is now enabled by default. This can improve accuracy of time measurements from the guest.
- We now track which extended control pane was selected by the user in metrics.
- Linux emulator now uses KVM paravirtualized clock when the guest kernel version is >= 5.4 (R system images or later).
- Emulator now uses LZ4 to decompress guest kernels, making it compatible with the modern kernel pipeline.
Added console commands to obtain the emulator AVD directory, discovery file path in the Studio-embedded use case, and path to snapshots:
adb emu avd path # Obtains path to AVD directory adb emu avd discoverypath # Obtains path to discovery file adb emu avd snapshotspath # Obtains path to snapshots folder adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
To make it easier to save vertical screen space, we've added an option to hide the device frame for the current AVD in Extended Controls > Settings . To globally hide device frames for all AVDs, we've made available the
NoDeviceFrame
feature flag, which can be activated via launching the emulator from the command line with-feature NoDevice
frame, or to lock it in, addingNoDeviceFrame = on
to~/.android/advancedFeatures.ini
(Create this file if it doesn't exist already).Added a drop down item in cellular page to turn on and turn off meterdness support, this is a no-op for older system images that do not support the 5G meterdness toggle.
- Also added console command for the same purpose:
gsm meter on|off
- Also added console command for the same purpose:
Upgraded toolchain / build to C++17.
Fixes: embedded emulator
- Clipboard should now work.
- Fixed issue where uppercase characters were delivered as lower case characters in the emulator.
- Fixed loading console token from a unicode path in windows.
- Fixed
SO_REUSEPORT
error message on linux. - Fixed a snapshot corruption issue when sending snapshot commands through gRPC, as well as when pressing the snapshot save button in Android Studio embedded emulator.
When using the Linux emulator embedded in Studio, we found that if this is done through Chrome Remote Desktop, there is a bug where
XDG_RUNTIME_DIR
is not set and may cause the embedded emulator to fail to appear due to the emulator discovery files being placed inXDG_RUNTIME_DIR
. You can check the status of the corresponding issue in the Chrome issue tracker .As a workaround, the emulator now falls back to using discovery files in a possibly-different directory that is based on user UID:
/run/user/<uid>
.Embedded emulator: Devices with rounded corners/notches now properly change their layout to make room for the corners and notch. This requires a cold boot of those emulators.
gRPC endpoint now supports sending SMS to the device.
General fixes
- We've seen compatibility issues running the Windows emulator with Riot Vanguard active. The Windows emulator now detects Vanguard anti-cheat and pops up a warning message if Vanguard is detected.
- Fixed
FD_SETSIZE
error on Windows. We now useWSAEventSelect()
instead ofselect()
for establishing non-blocking connections to loopback servers. - Added F16C CPUID feature support to Linux emulator with fixes issues running some ARM64 applications through NDK translation; macOS/Windows in progress.
- Fixed gpx/kml route playback to follow timestamps.
- Fixed bouncing icon on launch for MacOs.
- If
hw.audioInput=no
andhw.audioOutput=no
inconfig.ini
, emulator audio is now properly disabled. - Fixed an issue where if the emulator window was minimized while the extended controls window was open but not active, the extended controls window would keep showing up when resizing the emulator window. We will completely remove the behavior (the case with active extended controls window) in a future update.
- Fixed a flaky bug with Wi-Fi not connected when the emulator starts.
- Fixed hang-on-exit when emulator issues shell commands with long or indefinite timeouts.
- Updated pc-bios with fixes to better support large images passed to
-initrd
; previous BIOS used a very inefficient method. - Fixed crash during termination when
-wifi-server-port
option is used. - The emulator now prints a warning if unsupported options are passed to
-prop
(Only qemu.* props are supported). - When building the emulator on Windows, there should be less chance of seeing flaky failures to write to files. For more information, see the Windows build instructions .
- Disabled Zoom button for foldable AVDs, which was causing issues.
- Emulator now correctly reports boot time coming from a device reboot.
- Linux: In the case where there are insufficient KVM permissions, the emulator now prints debugging instructions more promptly.
- Fixed issue where the emulator could not boot recent system images with no acceleration.
- Fixed memory corruption or crash on start from a boot-completed detector.
- Fixed memory leak during long screen recording sessions.
- Emulator icons updated to reflect Studio 4.1 branding.
- Added better support for detecting remote sessions on Windows.
Fixes: graphics and video decode
- Fixed an issue where latest Asphalt 9 game rendered with a black screen.
- Removed spam about flushing mapped buffer with
NULL
. - Fixed a race condition when tearing down Vulkan state when a guest Vulkan app exited.
- Vulkan ASTC/ETC2 emulation shaders are now baked into the libOpenglRender library. This will be more reliable versus reading from the filesystem.
- Fixed an issue in Vulkan where if running with a Vulkan 1.0 instance on the host,
vkGetImageMemoryRequirements2KHR
would incorrectly clear the returnedVkMemoryRequirements2
struct'spNext
field. - Fixed a memory leak in Vulkan renderer.
- Fixed a recent regression where GLSL ES 1.00 shaders with variable names like
isampler2D
failed to compile. - Updated ANGLE shader translator with various fixes that address possible failure to compile shaders on Linux.
- We now crash the emulator if the basic framebuffer blit shader fails to compile, in order to keep track of the phenomenon.
- Updated ANGLE shader translator to keep up with upstream ANGLE. This fixed an issue around memory corruption when translating and constant-folding OpenGL ES shaders that used non-square matrices. The shader translator is now a separate shared library,
libshadertranslator.dll
. - Fixed an issue on Vulkan initialization on some GPU drivers, where certain 1.1 device functions were not found.
- Vulkan: We've reverted back to using the prebuilt loader as favoring the system Vulkan loader caused issues in some setups; will figure out a better solution.
- Fixed issue when using Vulkan external memory where it could have been imported mismatching memory type indices on the host.
- Fixed issue in emulation of
GL_ALIASED_POINT_SIZE_RANGE
where the enum was not supported on the host. - Fixed issue where on some host GPUs, Skia shaders could not compile due to errors related to
GL_EXT_shader_framebuffer_fetch
. - Since our copy of the D3D9 ANGLE renderer was removed a few versions ago, we now also auto switch users who were on that renderer to d3d11 ANGLE if it was selected in the UI preferences.
- More debug info has been added to WGL initialization on Windows in order to trace failures.
- When
hw.gltransport=virtio-gpu-pipe
, performance is improved by not spinning on the host in transfers from host to guest. - Added more debug logging for when OpenGLES emulation fails to initialize.
- Fixed an issue with Youtube videos flickering or not showing up on snapshot load.
- Switched back to software decode for libvpx for now as we've seen issues with CUDA hardware decode of libvpx. If you have a supported CUDA hardware decode implementation on the host side, hardware decode of libvpx can be re-enabled via the environment variable
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
.
30.0.10 (April 30, 2020)
This update includes support for running the emulator directly in Android Studio and virtual devices with Freeform Window Mode activated by default.
Run the Emulator in Android Studio
The Android Emulator can now be run directly in Android Studio . Use this feature to conserve screen real estate, to navigate quickly between the emulator and the editor window using hotkeys, and to organize your IDE and emulator workflow in a single application window.
Freeform Window Mode
You can now create an AVD that has Freeform Window Mode enabled by selecting the 13.5” Freeform tablet hardware profile when creating a virtual device in Android Studio. This hardware profile requires a system image with Android 11 Developer Preview 3 or higher.
Known issues
Resizing freeform windows is currently broken due to issues transferring focus to the Window Manager. This will be addressed in a future Android 11 system image release.
30.0.0 (February 19, 2020)
This update includes Android 11 (API level 30) system images and improved performance when running ARM binaries.
Android 11 system images
You can now create an AVD that runs Android 11 by selecting either of the available API level 30 system images:
- x86 : Includes both x86 and ARMv7 ABIs.
- x86_64 : Includes x86, x86_64, ARMv7 and ARM64 ABIs.
Support for ARM binaries on Android 9 and 11 system images
If you were previously unable to use the Android Emulator because your app depended on ARM binaries, you can now use the Android 9 x86 system image or any Android 11 system image to run your app – it is no longer necessary to download a specific system image to run ARM binaries. These Android 9 and Android 11 system images support ARM by default and provide dramatically improved performance when compared to those with full ARM emulation.
Known issues
- Some ARMv7 binaries fail to run on Android 11 x86 and x86_64 system images. Consider building for ARM64 when targeting Android 11.
29.0.11 (May 29, 2019)
This update includes the following improvements and fixes:
- Windows: The emulator now relies on the
libgcc
DLL that we ship instead of being compiled withlibgcc
statically. - Linux: Added logcat support to the gRPC API. For more information about gRPC, see gRPC streaming emulator (Linux) .
- The emulator now includes a headless build for 32-bit x86 guests (
qemu-system-i386
). This feature enables x86 32-bit images for API levels 26 and lower to run with the headless build. Note that for 32-bit x86 guests with API 27 and later, the emulator uses the 64-bit engine (qemu-system-x86_64
) because in these system images, while the userspace is 32-bit, the kernel is 64-bit. Android Studio uses the kernel to select emulation engines. - You can now specify custom Qt library paths using the
ANDROID_QT_LIB_PATH
environment variable. - You can now run the emulator with previous binaries that use QEMU1 if the QEMU1 executables (
emulator[64]-[x86|arm|etc]
) are placed in the emulator directory. - Windows: Fixed an issue that could sometimes cause the emulator to fail to start with a "vCPU shutdown request" message.
- Fixed an issue with an unnecessary pipeline barrier in emulated compressed textures in Vulkan.
- Fixed an error that occurred with http proxy requests when chunked transfer encoding was used. For more information, see the commit details .
29.0.9 (May 7, 2019)
This update includes the following fix:
- Windows: Fixed an issue where the virtual scene camera and webcam would not work on the emulator.
29.0.8 (May 6, 2019)
This update includes the following improvements and fixes:
- Added support for multiple virtual hardware displays when there's a guest service to enumerate and set each display. Multiple virtual hardware displays will be included in a future emulator system image update.
- Added a new command line option:
-delay-adb
. This option suppresses processing of ADB packets until the guest has completed booting (off a cold boot). This option helps resolve issues that could occur if you use the emulator in a CI environment that reboots the emulator and uses DDMS at the same time. - Fixed an error that occurred when snapshots are loaded where
glIsRenderbuffer
would return the incorrect value. - Fixed some issues with stale state when the Android guest reboots.
- Windows: Fixed issues that prevented the emulator from starting when the Windows username had non-ASCII characters or spaces.
Known issues
- The Snapshots UI is disabled for Automotive system images because snapshots aren't currently supported for these system images.
29.0.6 (May 1, 2019)
This update includes several new features, improvements to existing features, and bug fixes.
Removal of QEMU1 and 32-bit Windows support
To better maintain the emulator, we no longer ship QEMU1 and 32-bit Windows binaries. If you are using Windows 32-bit, you cannot upgrade to version 29.0.6.
Requirements for Android Q system images
If you want to run an AVD that uses an Android Q system image, you must now use version 29.0.6 (this release version) or higher.
Project Marble Improvements
This update continues our work on the Project Marble initiative that was announced at the Android Developer Summit in November 2018. For more information about other Project Marble improvements in previous releases, see Android Emulator: Project Marble Improvements .
For this update, most of our Project Marble efforts were dedicated to reducing emulator resource usage, such as reducing the emulator's CPU usage while idle. We've also included changes that make it easier to work with the emulator in a wider variety of environments, and we've addressed general quality issues.
The following sections describe the Project Marble improvements that are included with this update:
Improvements for host audio behavior
Starting with version 28.0.3, the emulator blocks audio input from the host by default.
If you want to use the host audio data, you can enable that option by going to Extended Controls > Microphone and enabling Virtual microphone uses host audio input . This option is automatically disabled whenever the emulator is restarted.
If you are using the command line, you can also enable host audio using the -allow-host-audio
option, and you can use the following ADB commands to turn host audio data on or off, respectively:
-
adb emu avd hostmicon
-
adb emu avd hostmicoff
Improvements for headless emulator builds
Starting with version 28.0.25, the emulator includes a headless build option that can run without the UI. You can use headless builds to help you set up the emulator for Docker and continuous integration (CI) workflows.
With this update, we've made further improvements to allow the emulator to run with a minimum number of dependencies. On Linux, headless builds no longer include the pulseaudio
or libX11
libraries. The system-dependent shared libraries that are not packaged with the emulator has been reduced to the following list:
-
Linux-vdso.so.1
-
Libutil.so.1
-
Libm.so.6
-
Libdl.so.2
-
Librt.so.1
-
Libpthread.so.0
-
Libgcc_s.so.1
-
Libc.so.6
-
ld-linux-x86-64.so.2
Upgraded Qt UI libraries to 5.12 LTS
This update includes the following improvements from the Qt 5.12 LTS release:
- To avoid crashes in Qt's
libpng
decoding when starting certain system images, the emulator now uses its own copy oflibpng
to decode PNG images. - To address issues with some Linux installs containing incompatible versions of some Qt dependent libraries, we now package
libfreetype
,libsoftokn
,libsqlite3
, andlibxkbcommon
with the emulator. - The emulator now uses the platform's native windowing libraries to get monitor dimensions, instead of using the Qt libraries that returned unreliable results.
Automatic CPU optimizations after cold boot
To address CPU usage, the emulator now runs the following ADB commands on a cold boot after it receives a boot complete
signal:
-
adb shell settings put screen_off_timeout 214783647
- This command increases the screen off timeout so the emulator can be used in battery mode without charging. In battery mode, background CPU usage is greatly reduced.
- In AC charging mode, GMSCore background operations such as app updates can take over all the device's CPU cores—and by extension, the user's machine—with no warning.
-
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- This command revokes microphone permissions for the Google search app, which greatly reduces background CPU usage on the home screen and in the launcher when the Google search app is active.
- This command is run in addition to the emulator's default behavior of disabling host audio for the host. Furthermore, this automatically provides the CPU usage mitigation described for hotword detection from the 28.0.23 release.
New environment variables for performance monitoring
You can now use two new environment variables to enable detailed monitoring of the emulator's performance and resource usage.
-
SHOW_PERF_STATS=1
- This environment variable enables tracking of both CPU and RAM usage. Tracking for RAM usage distinguishes between graphics usage and total resident memory.
-
ANDROID_EMU_TRACING=1
- This environment variable enables printing every time an input or graphics operation takes a long time (longer than 1 ms).
- We're also using this environment variable to help diagnose issues that Windows users have experienced with more jank (dropped frames) than users experience on macOS or Linux.
General Project Marble improvements
This update also includes the following general improvements that are part of the Project Marble initiative:
- You can now immediately pause all vCPUs on the emulator via the following console commands:
-
adb emu avd pause
-
adb emu avd resume
-
- Greatly reduced overhead of OpenGL drawing. This improvement reduces CPU usage while the emulator is playing animations.
- Restored support for mainline QEMU's e1000 virtual network device. You can use this device to set up the emulator in a bridged network environment. In a bridged network environment, the emulator is shown on the host network and the host network is shown on the emulator.
- QEMU 2.12-appropriate BIOS binaries are now used to start up the emulator.
- Upgraded
ffmpeg
version to 3.4.5 for video encoding and decoding. - Greatly reduced overhead of QEMU main loop I/O on macOS by replacing the main loop that was based on
select()
with a main loop that is based onkqueue
. - Logcat buffer size increased to 2 MB to address issues with flaky unexpected EOF when running logcat with the emulator.
- The emulator now exports the
LC_ALL=C
environment variable by default. This change addresses crashes and incompatibility issues associated with running the emulator in different locales. - You can now track the CPU and RAM usage of the emulator using performance stats that you can access at Extended Controls > Settings > Advanced > Performance Stats . Use these stats to quickly diagnose issues if the emulator seems to be using too much CPU or RAM.
-
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
now uses the host GPU's result instead of an emulated one. This change helps fix issues where images and assets do not display because of improper format for readback. - Added support for the OpenGL ES extensions
GL_EXT_texture_format_BGRA8888
andGL_APPLE_texture_format_BGRA8888
if these extensions are supported by the host. - Added more diagnostic info to the Bugreport UI. In addition, you can access bug reports from the console using the following commands:
-
telnet localhost 5554
-
avd bugreport
-
- On Android Q system images, the emulator increases its minimum RAM size to 2 GB.
- Added more logging and printing whenever OpenGL or the hypervisor fails to initialize.
- If the emulator cannot start a concurrent
-read-only
instance of an AVD, the emulator now attempts to relaunch the-read-only
AVD 3 more times over 3 seconds. This change increases the likelihood that the emulator will be able to launch concurrent-read-only
instances an AVD if other writable instances of that AVD are not done cleaning up stale files. - For upcoming system images, the emulator now supports Hardware Composer 2.0. This change should lower the driver overhead when running most animations.
- The emulator build is now based on CMake/Ninja.
- In the emulator extended controls UI, divider lines in the keyboard shortcuts table have been restored.
- Users can now opt-in to provide our team with CPU and RAM usage metrics in a 10 second interval. We use these metrics to enrich our data about emulator resource usage with different use cases from our users, which allows us to make the emulator more efficient and responsive.
General Project Marble fixes
This update also includes the following general fixes that are part of the Project Marble initiative:
- Fixed issues with twitching and incorrect frames that were displayed on systems with Intel GPUs when using Android Q system images.
- Fixed issues where a black screen was displayed when using Android Q system images with Pixel 2 XL skins (or any skin that has a notch or rounded corners).
- Fixed an issue where the
-partition-size
command line option would not set the data partition size. - Fixed an issue where pulseaudio on the Linx emulator would spin and take up an entire CPU core in some situations.
- Fixed issues with out of bounds memory access when processing compressed textures.
- Fixed GL errors that occurred on the host in
glTexSubImage2D
when updating certain gralloc buffers (with format RGB 565, RGB10A2, RGB(A)16F). - Fixed a display issue in Android Q system images with snapshots where the notification shade's geometry was rendered with an improper instance divisor setting.
- Fixed a few hard-to-reproduce crash and freeze issues on launch that happened due to Qt losing signals or having flaky, inconsistent states on startup.
- Fixed numerous concurrency issues. We are now able to build the Linux emulator with ThreadSanitizer (TSAN), which can easily uncover bugs that are otherwise difficult to reproduce.
- For Linux users: we have found that on certain host kernels, the guest Android kernel can error out and exit in KVM with a generic hardware error. The emulator will now
abort()
when this happens in order to increase debuggability (previously, the emulator just hung). - For Linux users: for convenience with CI setups, you can use the new
-stdouterr-file <file-name>
command line option to redirect bothstdout
andstderr
to a file. - Fixed an issue where
SO_REUSEADDR
was used incorrectly. For more information, see the commit details . - Fixed a long-standing issue with the Windows emulator where sub-processes, such as ADB commands, failed to start if the username had spaces in it.
- Fixed an issue with missing initialization of RCU in HAXM vCPU threads. This fix can possibly address some crashes and race conditions.
- Fixed a crash that happened with certain patterns of saving and loading snapshots from the snapshots UI using recent Android Q system images.
- Fixed an issue where the virtual scene camera would be blank when the emulator was initialized from a snapshot if an AR macro was playing when that snapshot was saved.
- Fixed an issue where some users with remote desktop setups got a black screen when launching the emulator on Linux. To avoid this, the emulator now explicitly configures
MESA_RGB_VISUAL
. For more information, see the commit details . - Fixed an issue where the rotate buttons would appear on TV AVDs.
- Fixed an issue where if emulator was set always on top, the extended controls window appeared every time the emulator was rotated.
Hardware profiles for foldable devices
The emulator now includes hardware profiles for foldable devices. To use these new hardware profiles, you must be using Android Studio 3.5 Canary 10 or higher.
There are two foldable hardware profiles that you can use to create an AVD:
- 7.3" Foldable: 1536x2152 unfolded, 4.6" 840x1960 folded
- 8" Foldable: 2200x2480 unfolded, 6.6" 1480x2480 folded
When you run the emulator using one of these hardware profiles, you can fold and unfold the device using the fold and unfold actions in the emulator toolbar, console commands , or the following keyboard shortcuts:
- Fold:
Ctrl + F
(Command + F
on macOS) - Unfold:
Ctrl + U
(Command + U
on macOS)
AR macros
The emulator now includes AR macros that can help you test common AR actions. For example, you can use a macro to reset all the device's sensors to their default state.
For more information, see Test common AR actions with macros .
Vulkan support (Windows, Linux)
Windows and Linux users can now test Vulkan apps with the Android Emulator up to Vulkan 1.1 when using a compatible system image (Android Q Beta 3 or higher for Vulkan 1.1, Android Q Beta 2 for Vulkan 1.0) and a compatible host GPU (this includes most Intel, NVIDIA, and AMD GPUs from 2014 and later).
To enable Vulkan support, you must add the following feature flags to your ~/.android/advancedFeatures.ini
file (create the file if it doesn't exist):
-
Vulkan = on
-
GLDirectMem = on
Initial support for ROM developers
ROM developers who are building the sdk_phone_x86
or sdk_phone_x86_64
( userdebug
, eng
variants) targets on AOSP master
branch can now run a Vulkan-enabled emulator.
This support is still experimental and is mainly for developers who work on system images, drivers, and game engines. Many extensions are still missing. However, HOST_COHERENT
memory is supported, and you should now be able to run the Vulkan API Tutorial Samples .
If you are using linux, you can try this by using the following commands:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Skia rendering with Vulkan
NVIDIA and AMD GPUs that support Vulkan also support zero-copy interop with OpenGL via the GL_EXT_memory_objects
extension. The emulator leverages this capability to provide a complete way to render the Android UI using the Skia Vulkan APIs.
If you have an NVIDIA or AMD GPU that supports Vulkan, use the following commands to test the Skia rendering with a compatible system image (Android Q Beta 3 and higher):
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
macOS support for Vulkan
macOS support is still experimental, but the emulator already includes the Swiftshader , MoltenVK , and libportability ( gfx-rs ) APIs. You can experiment with these APIs by setting the following environment variables:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader
- MoltenVK:
ANDROID_EMU_VK_ICD=moltenvk
- libportability:
ANDROID_EMU_VK_ICD=portability
Known issues
HAXM can sometimes fail to map Vulkan coherent memory to the guest and shuts down the emulator. This is addressed in an upcoming HAXM update.
gRPC streaming emulator (Linux)
We're always trying to make the emulator as versatile as possible by allowing host GPU rendering and interactivity in the widest range of running contexts. Our CI and remote desktop users have the following long-standing issues:
- Programmatically sending input commands to the emulator involves either running adb shell commands that can experience high overhead, or using the telnet console, which is faster, but might not work with certain network configurations.
- CI users often run emulators headless, which can make it difficult to notice issues that require the screen to be visible or interactive.
- Remote desktop users often can't interact with the emulator when using host GPU rendering because GPU rendering is often tied to the host's non-virtual displays.
To address this, when running on a Linux machine, the emulator now serves a gRPC service. gRPC is a general framework for RPC that works over HTTP.
By default, the emulator gRPC service is disabled, but you can activate the service using the following command line option, where <port>
is the port which the emulator should serve gRPC requests (usually 5556
):
-grpc <port>
Once the service is started, gRPC commands can then be issued from clients. The current set of commands allows both sending input events and receiving screenshots. These commands help address the following issues:
- Input commands can be sent to the emulator with low overhead over HTTP. HTTP also enables commands to be sent in additional network configurations.
- Screenshot commands can be sent to query the current screen, even if the emulator is running headless. For interactivity, input events can also be sent back to the emulator.
- Remote desktop users can run the emulator headless on the main display with GPU accelerated rendering while using gRPC to get screenshots and send input events in order to interact with the emulator.
For a complete list of the commands that are available, see this protobuf .
To help you get started with gRPC, we've provided some sample clients that you can refer to.
Currently, this includes the following samples:
- A Go-based service that can be used to query emulator states.
- A React app that demonstrates remote interactivity via screenshot and input RPCs. This sample requires protobuf version 3.7.0 or higher.
- A Python sample that queries the emulator's VM configuration and then sends a series of commands.
28.0.25 (March 29, 2019)
This update includes the following improvements and fixes:
Headless emulator build
The emulator has been difficult to set up with Docker and other continuous integration (CI) workflows due to the implicit expectations of the system being able to support Qt along with its shared library dependencies (among other issues).
As a first step to address this, we've introduced a variant of the emulator launcher with QEMU executables that does not depend on Qt. On Linux, there is still a link to libX11
, but we hope to remove that soon as well.
To use the headless emulator, run the emulator from the command line as usual, but replace the emulator binary invocation with emulator-headless
. For more information, see the 28.1.8 Canary release update.
- Fixed twitching and incorrect frame display on Intel GPUs when running Android Q system images.
- Fixed issues where black screen would display when using Android Q system images with Pixel 2 XL skins.
- The latest BIOS binaries are now used to start up the emulator. This change can help reduce "vCPU shutdown request" errors that happen sometimes when launching the emulator on Windows.
- Backported a fix for the "wrong display when resuming Android Q system images from a snapshot" issue .
- Users were experiencing "unauthorized" emulators issues due to an incompatible change in ADB in platform-tools 28.0.2. You can now safely use ADB from platform-tools 28.0.2 with the emulator. If you are experiencing problems with "unauthorized" emulators, do the following troubleshooting steps:
- Exit all emulators.
- Delete both the
~/.android/adbkey
and~/.android/adbkey.pub
files. - Run the following command:
adb kill-server
- Run the following command:
adb devices
- Wipe the AVD data.
- Relaunch the emulator.
28.0.23 (January 29, 2019)
This update includes the following improvements and fixes:
Host audio input disabled by default
A recent post on Reddit detailed how the guest Android OS would always be using the host microphone's audio, and thereby allowing "Ok Google" to work unexpectedly. We're sorry about this and will work with the Android team to make sure hotword detection is disabled in the system image as well.
To address this, we've made the following changes:
- Actual host audio data is now squelched by default. When the guest uses the microphone, silence is passed over instead of the host's audio.
- If you want to use the host audio data, you can now enable that option by going to Extended Controls > Microphone and enabling Virtual microphone uses host audio input . This option is automatically disabled whenever the emulator is restarted.
Updates on CPU usage investigations
During our Project Marble investigations, we've noticed that high CPU usage on the emulator generally falls into the following three categories:
At idle: Automatic app updates in Play Store images
We found that at random intervals, all apps installed get updated, even when the user is not logged in. During the process, CPU usage is driven to the number of cores x 100% (typically ~400%) in GMSCore and dex2oat. You can mitigate this issue by disabling auto app updates in the Play Store app.
At idle: Hotword detection
When on the home screen and without any app foregrounded, there can be a great deal of CPU usage (~25% with spikes to 50%). This is caused by hotword detection that constantly pings the host. You cannot mitigate this issue by disabling host audio input because the CPU cost is primarily caused by the time that it takes to travel to the guest from the host. However, you can mitigate this issue by revoking microphone permissions from the Google app.
While active, sometimes at idle: Animations
The third source of high CPU usage is animations. We have found that by optimizing the graphics driver stack we can also reduce CPU usage even when the emulator is not idle. We will be rolling out graphics driver optimizations incrementally as part of Project Marble.
28.0.22 (December 21, 2018)
This update includes the following improvements and fixes:
- Fixed a long-standing issue where in some settings, the Mac emulator would reboot or kernel panic on Quickboot save. ( Issue 120951634 )
- When using a mapped file as the RAM snapshot, the emulator now unmaps the file mapping explicitly on exit.
28.0.20 (December 11, 2018)
This update includes the following improvements and fixes:
- Fixed an issue on Windows that caused the emulator to freeze on snapshot load with certain models of Intel GPUs.
- Fixed an issue that caused an
unauthorized
ADB device state when using a non-standardANDROID_SDK_HOME
location. - Fixed an issue on Windows that caused the emulator to crash when booting system images with CPU acceleration disabled.
- Fixed the pixelated emulator display issue. Downsampling should now be working.
- Fixed an issue on macOS 10.14+ where the virtual scene camera mouselook control could become too sensitive due to an interaction with new accessibility security settings.
- Fixed an error in timezone calculation that could cause the emulator clock to sporadically change.
- Fixed rendering errors in various cocos2d and Unreal engine apps.
- Added support in the emulator for Wi-Fi peer-to-peer . Two emulators can now talk to each other directly via Wi-Fi if using the latest Pie Play Store image. To use Wi-Fi peer-to-peer, start two AVDs with the same
-wifi-server-port
and-wifi-client-port
arguments:-
emulator @<server-avd-name> -wifi-server-port 9999
-
emulator @<client-avd-name>-wifi-client-port 9999
-
- Added support for more webcams on Windows by taking any incompatible frame sizes and dynamically resizing them to fit the camera setting in the Android guest.
28.0.16 (November 2018)
This update includes several new features, improvements to existing features, and bug fixes.
Resource usage
The emulator now uses less RAM overall, especially when using system images with API level 28 or higher. These system images include improved memory usage for guest-side graphics drivers.
In addition, we have also improved resource usage in the following areas:
- Reduced emulator memory usage during long-running tests. If you still experience issues with memory usage during long-running tests, please create an issue that describes your use case in Issue Tracker .
- Reduced CPU usage when running apps with animations.
- Fixed an issue where the QEMU AIO context could leak on Windows.
Run multiple instances of a single AVD concurrently
You can now launch multiple instances of the same AVD and run them concurrently. Instances that you launch after the first instance are read-only, and their changes to the guest virtual disk are discarded on exit.
To run multiple instances of the same AVD at the same time, launch any instances after the first instance from the command line using the -read-only
flag.
This feature is made possible by copying the QCOW2 files associated with the writable parts of the Android image. To help you manage disk space, we have also bundled the qemu-img
command line tool to allow you to pre-commit QCOW2 files before launching multiple instances.
In addition, when used in tandem with the File-backed guest RAM snapshots feature, multiple AVD instances share the primary AVD Quickboot snapshot as a common source of copy-on-write guest RAM. This property means that the instances share much of their RAM in common. Use this feature to run tests that require multiple devices to run in parallel.
We appreciate your feedback on possible use cases that are part of your normal interactive or CI workflow. Please create or upvote issues in Issue Tracker .
File-backed guest RAM snapshots
By pre-allocating and mapping guest RAM as a file, the emulator can now save Quickboot snapshots during runtime, instead of doing all of the work on exit. If you currently experience long save times when closing your emulators, enable this feature to improve your Quickboot performance. By default, a Quickboot snapshot is saved on exit and loaded again every time, like suspending and waking a real device.
Because Android guest RAM is now auto-saved by default, if you want to define a device state and repeatedly load from that state, you need to tell the emulator to discard changes after each session. Вы можете сделать это следующими способами:
- Use the
-no-snapshot-save
or-read-only
flags when launching the emulator from the command line. - Go to Extended Controls > Snapshots > Settings and switch Auto-save current state to Quickboot? to No .
- You will need to restart the emulator after selecting this option. If the emulator is set to auto-save, you can run the following command to set a checkpoint:
adb emu avd snapshot remap 0
After you run this command, the emulator Quickboot snapshot will stay at that checkpoint. Run the same command again to load the emulator from your checkpoint.
Snapshots that are taken and loaded through the Snapshots UI function as they did before, with no file mapping.
Because this is a large change to how Quickboot works, we would greatly appreciate your feedback on whether it improves Quickboot performance and what kind of issues you encounter when using it. If you experience problems, you can disable this feature by adding the following line to your ~/.android/advancedFeatures.ini
file:
QuickbootFileBacked = off
When you start the emulator from a snapshot (either using the -snapshot
command line option, or launching from a snapshot in the AVD manager) the emulator disables both auto-saving for Quickboot snapshots and saving Quickboot snapshots on exit. This reduces the chances that the Quickboot snapshot will be unintentionally overwritten, and avoids slow fallback paths that do not use file-backed Quickboot snapshots.
QEMU 2.12
We have rebased our variant of QEMU from QEMU 2.9 to QEMU 2.12. This update includes the following QEMU changes:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
Here are some of the notable changes that impact the Android Emulator:
- x86:
gdbstub
now provides access to SSE registers. - Disk images: Image locking is added and enabled by default. Multiple QEMU processes cannot write to the same image as long as the host supports OFD or posix locking, unless options are specified otherwise.
-
qemu-img: qemu-img resize
supports preallocation of the new parts of the image. - QCOW2 shrinking now supported in
qemu
andqemu-img
.
Доступность
- Fixed issues with screen readers and added better support for these tools in the Screen Record and Snapshot UI.
- Made the Quick Boot notification icons more accessible to users who are color blind.
Графика
- Fixed an out-of-bounds memory access issue that could occur for OpenGL ES vertex array pointers.
- Some older GPUs did not support OpenGL 2.1 or greater (which is required), or had other reliability issues. These issues could cause the emulator to crash on start, freeze, or be unusable on the default GPU setting. The emulator now automatically switches to the Swiftshader renderer if it detects that these GPUs are in use.
- Fixed an issue that caused the emulator to not post the correct framebuffer if
FBO != 0
was bound at the time ofeglSwapBuffers
. - Fixed issue where the virtual Android display would only show up in the top left corner. We believe this was due to misconfigured Qt environment variables. The emulator now overrides all Qt scaling-related environment variables.
- Fixed an issue where the emulator crashed in some situations when loading GLES1 apps from a snapshot.
- Fixed concurrency issues in OpenGL and launching render threads that could result in double frees or corrupted data.
- Android Emulator now supports ASTC LDR compressed texture support (
GL_KHR_texture_compression_astc_ldr
) for system images that use API level 28 or higher. - Most modern GPUs should now be able to launch the emulator with OpenGL ES 3.x enabled by default without using the
GLESDynamicVersion
feature flag. -
-gpu guest
(software rendering in the guest) has been deprecated. System images for API level 28 or higher now automatically switch to using Swiftshader instead (-gpu swiftshader_indirect
). - If the emulator is launched from the command line using the
-no-window
flag, the default renderer is now Swiftshader.
Расположение
- The emulator can now update bearing along with latitude and longitude position. The magnetometer virtual sensor adjusts itself dynamically to magnetic north by inferring motion when playing back a GPX or KML file.
- Device speed can now be set on the Location page.
- When playing back a GPX or KML file, the speed is set automatically, and is set to zero when the playback ends.
- The altitude is no longer restricted to being between -1,000 and +10,000 meters.
- Fixed an issue where the virtual GPS location would not be updated periodically unless the Extended Controls window was opened at least once.
Камера
On Windows, more webcams are now supported because the emulator dynamically resizes the camera frames that are delivered from the webcam. This feature also prevents errors in frame delivery from causing the emulator to hang.
Play Маркет
To address issues with running out of disk space on Play Store images, the emulator now automatically resizes the userdata partition to 6 GB when running with a fresh Play Store AVD.
General quality improvements and fixes
- Some users reported that the emulator has been running slow. We identified one possible cause where the temp directory for the emulator ends up with too many stale files inside. As a workaround, the emulator no longer stores ADB liveness check files in that directory. However, it may also help to delete the contents of that folder. The folder is located in one of the following locations, depending on your operating system:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS or Linux:
/tmp/android-<username>/*
- Windows:
- If the emulator is unable to start due to insufficient free RAM, an error message is now displayed. If you are on Windows and notice that there is RAM free, but you are still unable to start the emulator, the commit charge may have been exceeded. For help with this issue, see the emulator Troubleshooting page .
- The
-sysdir
command line option now properly overrides the inferred system image directory. - Virtual modem now supports the model activity info
+MAI
query. - Fixed various issues with memory leaks, memory corruption, and CPU usage. If you are experiencing crashes, memory leaks, or other high resource usage, please create an issue in Issue Tracker .
- Fixed an issue that reappeared on macOS 10.14 where using Bluetooth headsets with the emulator would degrade audio globally. To prevent this, the emulator now avoids using Bluetooth audio when running on macOS. ( Issue 37070892 )
- Fixed an issue on Windows where the emulator clock would not be in the correct timezone.
- Fixed emulator slowness and hangs on Linux systems with spinning harddrives (HDDs).
- Fixed some compile warnings that could lead to stack corruption on macOS.
- Fixed issues that could result in misleading reports of hanging.
- Fixed an issue with destroying thread pools that could cause a crash if one of the threads was not successfully created.
- Fixed an issue on macOS where timers would become unreliable, leading to hangs and other strange behavior. If you experience emulator hangs on macOS, please create an issue in Issue Tracker .
- Fixed an issue where closing the emulator would disable the UI, but not actually close the emulator.
- Fixed issues involving sporadic crashes, including an abort due to opening too many instances of
/dev/urandom
. - Fixed an issue that caused the emulator to fail to start after the first time if ADB was terminated forcefully.
- The MIPS build has been removed. If you still require MIPS, please create an issue in Issue Tracker .
- Fixed an issue where ADB connections could become corrupt on snapshot load.
- Fixed an issue where the emulator window would have an afterimage or teleport offscreen when resuming a snapshot where the device orientation was different from the AVD's default orientation.
- Fixed issues involving crashes when saving snapshots.
- On Linux, btrfs filesystems can cause extreme slowdowns because the emulator automatically saves snapshots and uses copy-on-write for its virtual disk devices. We recommend cleaning out the
~/.android/avd
directory and running the following command on the empty~/.android/avd
directory:chattr +C
This creates new snapshots in a folder where copy-on-write is disabled.
HAXM 7.3.2
We would like to mention HAXM 7.3.2 again because it must be installed in order for recent system images to run properly on the emulator. HAXM 7.3.2 should already be available in the Stable channel, and can also be installed manually from https://github.com/intel/haxm/releases .
Here are a couple of the issues that this version of HAXM resolved:
- Fixed random crashes of guest OSes that use a recent Linux kernel (>= 4.6). For example, Ubuntu 18.04 ( #39 , #74 ).
- Fixed an x86 instruction emulator bug that could lead to a host crash ( #93 ).
32-bit Windows deprecation
Due to low usage and high maintenance costs, we are planning to deprecate the 32-bit version of the Android Emulator that runs on Windows. We will roll out a transition plan before removal and end-of-life for the 32-bit version of the Android Emulator. However, we are actively seeking any feedback or concerns with this future change.
Please let us know in Issue Tracker if you currently rely on the 32-bit version of the Android Emulator that runs on Windows and tell us how we can best work with you going forward.
27.3.10 (August 2018)
This update includes the following bug fix:
RAM size configuration fix
Some users reported that the emulator has been running slow. We identified one possible cause where the AVD RAM size in the AVD's config.ini
file was being set incorrectly.
To mitigate this, the emulator increases the minimum RAM level for images that use API level 26 or higher to the Android Studio default level of 1536 MB. If your AVD's config.ini
file is not listing hw.ramSize
in megabytes, please create an issue in Issue Tracker . You can find the config.ini
file in the following location:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (July 2018)
This update includes the following improvements and bug fixes:
Improved error messages for Windows Hypervisor Platform
Some users were having difficulty diagnosing why the Windows Hypervisor Platform (WHPX) failed to initialize when they activated a WHPX emulator. To help you diagnose these issues, we have added more informative error messages. You can enable these error messages by running the emulator from the command line using the -verbose
flag.
General fixes
- Fixed OpenGL errors that occur when loading a snapshot in the camera app.
27.3.8 (July 2018)
This update includes several new features, improvements to existing features, and bug fixes.
Снимки
You can now save multiple AVD snapshots for a given device configuration and choose which of the saved snapshots to load when you start the emulator.
Starting with Android Studio 3.2 Canary 13, each device configuration includes a control in the advanced settings in the Virtual Device Configuration dialog with which you can you can specify which AVD snapshot to load when starting the AVD.
To accommodate this expansion of the snapshot features, we have added a Snapshots category to the Extended controls dialog. This new pane contains controls for saving and loading AVD snapshots, including the controls for saving and loading the quick-boot snapshot that had previously been in the Settings pane.
You can edit the name and description of each saved snapshot.
For details, see Snapshots .
HAXM 7.2.0
HAXM 7.2.0 is now available in all channels.
This update includes bug fixes and improved support for large amounts of RAM. Also, with this HAXM update and Emulator 27.3 and later, snapshots load their contents into RAM on demand rather than loading the entire snapshot when the virtual device starts. This change should greatly decrease the time needed to load a snapshot.
For details, see Configuring VM acceleration .
27.2.9 (May 2018)
This update includes several new features, improvements to existing features, and bug fixes.
Screen recording
You can now record video and audio from the Android Emulator and save the recording to a WebM or animated GIF file.
The screen recording controls are in the Screen record tab of the Extended Controls window.
Tip: You can also open the screen recording controls by pressing Control + Shift + R (Command + Shift + R on Mac).
To begin screen recording, click the Start recording button in the Screen record tab. To stop recording, click Stop recording .
Controls for playing and saving the recorded video are at the bottom of the Screen record tab. To save the video, choose WebM or GIF from the menu at the bottom of the tab and click Save .
You can also record and save a screen recording from the emulator using the following command on the command line:
adb emu screenrecord start --time-limit 10 [path to save video] /sample_video.webm
Скриншоты
You can take screenshots from the command line with either of the following commands:
-
screenrecord screenshot [destination-directory]
-
adb emu screenrecord screenshot [destination-directory]
Screenshots are saved in PNG format.
Virtual scene camera and ARCore
Developing and testing augmented reality apps (AR) with ARCore is now even easier with the new virtual scene camera, which allows you to experiment with your AR experience within a virtual environment.
For information on using the virtual scene camera in the emulator, see Run AR apps in Android Emulator .
Google Play Store on Pixel device images
The Google Play Store is now enabled for Pixel and Pixel 2 device images. This is indicated in the AVD Manager in Android Studio 3.2 and later with the Google Play logo in the Play Store column. AVDs with Google Play Store enabled have a Google Play tab in the Extended controls dialog that provides a convenient button for updating Google Play services on the device.
Снимки
You can now load a Quick Boot snapshot without restarting the emulator. To load a snapshot, open the Extended Controls window to the Settings page and click the Load Now button.
We have made many improvements to the loading and saving of snapshots to improve efficiency of resource usage and to minimize the time that each operation takes. If you still experience unusually long saves, please file an issue , providing details of your CPU, RAM, and settings of any antivirus / firewall / security software that is running.
Rendering with Skia
When using images for API 27 or later, the emulator can render the Android UI with Skia , which can render more smoothly and efficiently.
For now, use of Skia requires that you explicitly enable it.
To enable Skia rendering, use the following commands in adb shell:
su setprop debug.hwui.renderer skiagl stop start
Камера
On Windows, Android Emulator now uses Media Foundation as the webcam back end, which greatly improves performance and frame rate for webcam capture, up to 720p 30 FPS.
On Mac, you can now use webcam0 and webcam1 together.
Разнообразный
The -phone-number-prefix
command-line option has been changed to -phone-number [number]
, which allows setting of the full phone number.
You can now use alphanumeric SMS addresses.
Fixes
- The Linux version of the Android Emulator is now built using a modern Clang C++ toolchain. This change fixes the issue of the emulator failing to start due to libGL and libstdc++ errors.
- Fixed several causes of crashes and hangs.
- To avoid crashes and hangs caused by not having enough free disk space, the emulator now checks for sufficient free disk space on startup, and will not start unless at least 2 GB is free.
- Fixed an issue that prevented some Unity games from rendering.
- Fixed DNS issue that caused the emulator to be unable to connect to the network.
- Fixed an issue that caused changes to the internal storage allocated to an AVD through the Virtual Device Configuration dialog to not work.
- Fixed an issue of many adb processes being created and not properly shut down.
- Fixed an issue that caused the rotate buttons and other parts of the UI to become unresponsive unless the Extended controls window was open.
- Fixed an issue that caused copy and paste from the host to not work unless the Extended controls dialog was opened at least once.
- The frameless emulator's resize rectangle has been updated to better follow the emulator's visual theme.
- Telephone and SMS are now properly deactivated when airplane mode is on.
- Fixed an issue that caused SMS and cellular functionality to be disabled after loading a snapshot.
- You will no longer receive false warning messages saying
“Unable to open... \pstore.bin. Permission denied.”
- Fixed an issue that prevented re-positioning the AVD on some Mac screens.
- Fixed issues with flickering and blank screens on newer MacBook Pro computers when running AVDs with Pixel 2 XL skins.
- Fixed issues with blank screens when switching into zoomed mode while a frameless emulator was active.
- Fixed an issue that caused the device skin and emulator contents to scroll out of sync when zoomed in.
If you are still experiencing hangs or other instabilities, please file an issue .
27.1.12 (March 2018)
This update includes fixes for the following issues:
- Bluetooth audio quality degraded after starting the emulator. ( Issue 37095756 )
- Locations sent to one emulator were sent to all of them. ( Issue 73450633 )
- GPS location set using the console was overridden by values set using Extended Controls > Location in the graphical user interface. ( Issue 73471760 )
If you are still experiencing hangs or other instabilities, please file an issue .
With this update, a current system image, and a preview version of Android Studio, you can use Android Emulator to run augmented reality applications built with ARCore. For detailed requirements and instructions, see Run AR apps in Android Emulator .
27.1.10 (February 2018)
Camera capture resolution
720p frames can now be captured from an attached webcam.
To work with Android 8.1 (API level 27) and higher system images, any attached webcam must have the capability to capture 720p frames.
Fixes
- Fixed an issue that caused webcam capture to sometimes output a distorted or all-green image.
- Fixed an issue that made it possible to see the following message even when there was no actual hang: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".
If you are still experiencing hangs or other instabilities, please file an issue .
27.1.7 (February 2018)
Frameless emulator window:
By default, emulators with device skin files are now shown without a surrounding window frame. To show the surrounding window frame, enable Show window frame around device in the Settings pane of the Extended Controls window.
Quick Boot improvements to make working with AVD snapshots more efficient:
- You can save an AVD snapshot at any time using the Save Now button in the Settings pane of the Extended Controls dialog box.
- The emulator reduces the time that it takes to save a snapshot in many cases by saving only the difference between the current state and the previously saved snapshot.
For details, see the Quick Boot documentation.
The emulator has been updated to use QEMU 2.9.
Some notable improvements include the following:
- Optimized I/O and finer-grained I/O thread locking for greater performance.
- Fixed bugs since QEMU 2.8 (26.1.4).
- New implementation of the HAXM back end.
See the full list of changes in the QEMU 2.9 change log .
Swiftshader implementation conforming to OpenGL ES 3.0:
The emulator's Swiftshader renderer now conforms fully with OpenGL ES 3.0. For details of the Swiftshader renderer, see the Settings > Advanced section of Extended Controls .
Fixes
- Fixed an issue where clipboard sharing was not working unless the Enable clipboard sharing option was toggled off and on.
- Fixed a hang when using the Swiftshader rendering back end with low-resolution AVDs.
27.0.5 (January 2018)
ANGLE for rendering on Windows is now disabled by default.
If ANGLE works better for you, you can re-enable it with command line flag
-gpu angle_indirect
. Or, open the Extended controls window, navigate to Settings > Advanced , and select ANGLE D3D11 for the OpenGL ES renderer setting.Fixed an issue where Shift+B does not type a capital B character.
27.0.2 (December 2017)
New Quick Boot feature provides faster emulator start times, based on a snapshot of your AVD instance.
Quick Boot is enabled by default for all AVDs. Although the first time you start an AVD it must perform a cold boot (just like powering on a device), all subsequent starts are fast and the system is restored to the state at which you closed the emulator (similar to waking a device).
If you want to control when the emulator saves a snapshot, open the emulator's Extended controls window and click Settings . Here, you can select one of the following settings for Save quick boot state on exit :
- Yes : Always save quick boot snapshot when you close the emulator. This is the default.
- No : Never save quick boot snapshot; always perform a cold boot.
- Ask : Prompt whether or not to save quick boot snapshot when you close the emulator.
Your selection applies only to the currently open AVD.
For more information, see the Quick Boot documentation .
Added support for Mac OpenGL ES 3 (for system images using API level 24 and higher, Google APIs, and the x86 ABI).
For added stability in OpenGL ES 2+ apps, emulator now uses OpenGL core profile if available.
New options for rendering with Swiftshader / ANGLE:
-
-gpu swiftshader_indirect
: Faster, more stable variant of Swiftshader that works with Quick Boot. -
-gpu angle_indirect
(Windows only): More stable variant of ANGLE D3D that also works with Quick Boot.
The older
-gpu swiftshader
and-gpu angle
options are now deprecated. In the Extended controls window, the "SwiftShader" and "ANGLE" options for the OpenGL ES renderer setting in Settings > Advanced now use the*_indirect
variants.-
Various other bug fixes.
26.1.4 (August 2017)
This is a minor release with bug fixes and the following improvements to GPU configuration:
- Enable boot animation when running on ANGLE renderer
- Disable GLES3 when running on ANGLE renderer
26.1.3 (August 2017)
This is a minor release with bug fixes, performance improvements, and small feature changes.
- This version is now required to use the latest Android 8.0 system images. They are Treble-compliant , featuring separate
vendor.img
partitions. - New HAXM 6.2.0 now available (check the SDK Manager) and includes the following updates:
- Improved memory usage. The peak working set of memory pinned by HAXM is no longer equal to the size of the AVD's RAM; instead, memory is paged in on demand. This should help the emulator run more reliably on machines with lower amounts of RAM.
- The emulator with HAXM 6.2.0 can now boot faster on macOS, skipping a lengthy initialization phase.
- Improvements to GPU configuration
- Fixed issues with black screen on boot when performing guest-side software rendering by falling back to host-side software rendering with Swiftshader. Latest revisions of system images for API levels 19 - 25 with Google APIs should have working guest-side rendering.
- Fixed an issue where the emulator was switched to a software renderer due to detecting the presence of older Intel GPUs, but the emulator was actually running on a discrete GPU. Which GPUs will be switched to use ANGLE or Swiftshader rendering is determined as follows:
- Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D drivers. Users with Intel HD Graphics 3xxx and older will use Swiftshader.
- Some users reported the inability to use API level 25 images because of a bug in which "Pixel Launcher keeps stopping." This seems to be a driver issue in some Intel HD 4xxx models. So they will be switched to use ANGLE automatically.
- For best results with GPU emulation, we recommend either to use a discrete NVIDIA or AMD GPU, or a newer Intel GPU (Iris, HD 5xxx, HD 5xx/6xx).
- Fixed an issue where the emulator would fail to start (OpenGL emulation failed to initialize) if the AVD was configured with
hw.gpu.mode=host
and the emulator was launched in a remote desktop client. - Clarified "OpenGL ES API level (requires restart)" settings; added an option to downgrade from OpenGL ES 3 to OpenGL ES 2 if experiencing issues or needing to test on lower OpenGL ES API levels.
- Mesa renderer is deprecated;
hw.gpu.mode=mesa
will now be automatically switched to use Swiftshader on the host.
- Improvements for macOS:
- The emulator is now fully compatible with macOS 10.13 High Sierra through either Hypervisor.Framework or HAXM 6.2.0.
- Hypervisor.framework is now enabled by default on macOS for 32-bit x86 images to improve performance and macOS compatibility. If you experience issues with it specifically, please file a bug report and append
HVF = off
to~/.android/advancedFeatures.ini
(create this file if it doesn't exist). - Fixed issues with no internet / failure to attach debugger while using Hypervisor.framework.
- To enhance compatibility and performance of webcam capture, the QTKit-based camera capture has been replaced with a buffered one based on AVFoundation.
- Added support for Wi-Fi in some system images (currently only API level 25). An access point called "AndroidWifi" is available and Android automatically connects to it. Wi-Fi support can be disabled by running the emulator with the command line parameter
-feature -Wifi
. - Some users raised the concern that the fixed-size Play Store system images did not have sufficient storage. As such, we've increased the size to 2 GB by default (up from 800 MB).
- Added a keyboard shortcut (Ctrl+Shift+U) to open the bug reporting UI page directly from the settings page.
- Fixed an issue where if an older CPU with Intel x86 EPT but without UG was used, the emulator would fail to boot if more than one core was configured.
- Fixed an issue where HyperV would be improperly detected if the emulator was itself running in a Xen hypervisor.
- Fixed an issue where the emulator would crash on start in some Linux configurations.
26.1.2 (July 2017)
This release includes new features and performance improvements.
Added the ability to define a custom HTTP proxy configuration in the extended controls (click More, and then click Settings and Proxy ). By default, the emulator uses the Android Studio HTTP proxy settings, but this screen allows you to define a manual proxy configuration.
Added VNC support for guest mode GPU so emulator can be remotely viewed and controlled. For example, you can launch the emulator and let VNC listen to port 5901 as follows:
- Execute:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Open a VNC viewer, such as tightvnc viewer, to connect to port 5901.
To use Mac's built-in screen sharing client, a VNC password is required when launching the emulator. To set a password, use this command:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
And then enter
change vnc password
into the console, and enter a password.
Android O is not currently supported for VNC mode.
- Execute:
Added a File a bug button in the extended controls Help screen (Click More, and then click Help and Emulator help ). Clicking File a bug opens a dialog where you can see the bug report details such as the screenshot, the AVD configuration info, and a bug report log. You can then save the report for yourself or report emulator issues .
Added gyroscope sensor to emulator and virtual sensors panel. This requires a system image with gyroscope support to work (currently API level 24 and 25).
Added host-preferred DNS to Qemu DNS list on Windows, when multiple virtual network interfaces on the host introduce multiple DNS addresses which are not functional for the emulator.
Added experimental macOS Hypervisor.Framework support for 32-bit x86 images on macOS 10.10+ through server flags, which should improve boot time and performance.
- If you experience problems with it, add the line
HVF = off
in~/.android/advancedFeatures.ini
.
- If you experience problems with it, add the line
OpenGL ES 3.x is now enabled by default for system images and host GPUs that support OpenGL ES 3. Currently, only Android O (API level 26) and Windows/Linux hosts support OpenGL ES 3.
- If you experience problems with OpenGL ES 3, add the line
GLESDynamicVersion = off
in~/.android/advancedFeatures.ini
.
- If you experience problems with OpenGL ES 3, add the line
Emulator now uses offscreen OpenGL FBOs for all rendering except final display image posting, which should help with color consistency issues across platforms.
After collecting data on sudden emulator slowdown issues, we have determined that the problem may have to do with some interaction between older Intel OpenGL drivers and Windows updates. As such, users with Intel HD 4000, 3000, 2000 (and related GPUs) now have rendering set by default to either a D3D renderer (ANGLE) or Swiftshader (software renderer).
26.0.0 (March 2017)
This release is compatible with API level 26. It also includes a number of performance improvements and bug fixes.
Minor revision 26.0.3 (May 2017)
- Adds online-updateable feature flags for quickly addressing issues stemming from problematic hardware configurations. This allows Google to roll out fixes and features that are dependent on user configurations by updating server-side flags. If you notice issues with specific hardware, please report a bug so we can investigate the problem.
- New support for rotary input for Android Wear API level 25 system images. To emulate the rotary input dial on a Wear device, click the Rotary Input tab on the extended window.
- The Crash Reporting dialog is now resizable and no longer resets When to send crash reports to Ask without input.
- The 32-bit emulator now requires that the maximum AVD RAM size be less than or equal to 512 MB, in order prevent the emulator from running out of room in the 2 GB virtual address space.
- Adds support for absolute paths in emulator images.
- Adds a new tab in the extended window for Google Play Store images that displays the Play Services version and a button to check for updates to Play Services.
- Adds a dropdown to select the OpenGL renderer on the Emulator Settings page. If you are experiencing issues with the OpenGL driver on a Windows machine, try using the ANGLE (D3D11) or ANGLE (D3D9) options (requires a restart). If you are experiencing issues with the OpenGL driver on a non-Windows machine, try using the Swiftshader software renderer (requires a restart).
- Fixes a rare crash on exit when the emulator receives both
exit
andminimize
commands. - Fixes a scaling issue when changing displays on a Mac machine. ( Issue 268296 )
- Fixes an issue where the emulator takes 300% of the CPU and holds it after resuming the host computer from sleep or when the emulator has been running for a long time.
- Fixes a crash when the emulator is shutting down.
Updates with HAXM v6.1.1 (March 2017)
Note: HAXM v6.1.1 is available for Mac users through the SDK Manager as of March 30th, and will be available for Windows users soon.
Version 26.0.0 of the Android Emulator supports HAXM v6.1.1, which includes the following updates:
- Enables Performance Monitoring Units (PMU) emulation. ( Issue 223377 )
- Fixes coexistence with VirtualBox and Docker on Macs. ( Issue 197915 )
- Revises the installation error message displayed when the installer fails to detect Intel VT-x on Windows, usually because Hyper-V is enabled.
- Adds support for accelerating the Android Emulator in a Hyper-V-based Windows VM. This update requires that the host Hyper-V instance (the one that manages the Windows VM/guest) use the latest version of Hyper-V with nested virtualization enabled. Hyper-V must be disabled in the guest Hyper-V instance (the Windows VM).
Зависимости
- Android SDK Platform-Tools revision 25.0.4 or later.
- Android SDK Tools revision 26.0.0 or later.
New features and bug fixes
- Compatible with API level 26.
- Fully GLES 2.0 compliant. Given a host GPU that has conformant desktop OpenGL drivers, the emulator now passes 100% of the Android CTS dEQP-GLES2
mustpass
list . This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images. - Improved video playback performance. The emulator now stores all video color buffers in host/guest shared memory and performs necessary final YUV to RGB conversion in the GPU. 1080p30 should be well within reach of most systems now. This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images.
- The emulator now correctly unregisters itself from the
adb devices
list on exit and closes open TCP ports on Linux machines. - adb connections are now more reliable. A running emulator is detected faster and doesn't go into “offline” or “unauthorized” status anymore.
25.3.0 (March 2017)
As of this release, the Android Emulator will be released separately from the SDK Tools. This release contains a variety of performance improvements, new features, and bug fixes.
Minor revision 25.3.1 (March 2017)
- Fixed a crash occurring on some GPU configurations by disabling GLAsyncSwap by default. This feature was added in 25.3.0 to improve frame timing and frames per second for games and video, but causes the emulator to fail on some unknown machine configurations. You can manually enable it by opening the
android_sdk /emulator/lib/advancedFeatures.ini
file and settingGLAsyncSwap = on
.
Зависимости
- Android SDK Platform-Tools revision 24 or later.
- Android SDK Tools revision 25.3.0.
New features and bug fixes
- Updated emulation engine to QEMU 2.7, including all recent bug fixes, improved performance, and new features.
- New IPv6 support.
- The emulator now uses SwiftShader as a pure software renderer on the host.
- Android Pipe performance improvements: Android Pipe, the main communication channel between the emulator and Android OS, is now an order of magnitude faster, has lower latency and offers better multi-threaded performance. This causes a number of performance improvements for the emulator, including:
- Improved ADB push/pull speed.
- Better 3D acceleration support.
- Increased overall responsiveness of the emulator.
- Improved graphics performance.
- The emulator now uses GPU-side buffers (glBindBuffers / glBufferData) when the guest requests them, decreasing CPU overhead in some apps.
- Improved audio support.
- Faster disk I/O: The emulator now uses separate threads to dispatch disk I/O, resulting in lower latency and better throughput (~1.5x sequential I/O speed, ~5x random access I/O speed). This also reduces the number of flushes to disk, resulting in much lower physical device load.
- The emulator now uses sparse files for disk boots on Windows machines, speeding up both first boot and "wipe-data" boots. When creating or resetting an AVD, the emulator now writes 100-200 MB of data to disk, instead of 2 GB or more.
- Various GUI enhancements:
- The emulator now uses Qt 5.7.0, which includes bug fixes and performance improvements.
- UI initialization no longer attempts to load all emulator executables as Qt plugins, so it's dramatically shorter, especially on HDDs.
- UI interactions are now faster and smoother, including rotation, window resizing, and extended controls window loading and closing.