Примечания к выпуску эмулятора

Эмулятор Android включен в состав Android Studio.

Версии эмулятора до 25.3.0 распространялись как часть Android SDK Tools.

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

Чтобы скачать предыдущие версии Android Emulator, смотрите архив загрузки эмулятора .

Примечания к выпуску для версий эмулятора до 25.3.0 см. в примечаниях к выпуску Android SDK Tools .

Информацию об известных проблемах и способах их устранения см. в разделе «Устранение неполадок эмулятора» .

35.4.4 Канарейки (12 декабря 2024 г.)

Новый эмулятор Android XR

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

Эмулятор Android XR — экспериментальный инструмент. Тем не менее, мы решили поделиться с вами пораньше, чтобы вы могли протестировать как можно раньше. Ожидайте проблем, особенно с некоторыми конфигурациями графического процессора и драйверов Windows. Проблемы также могут возникнуть при тестировании совместимости существующих мобильных 2D-приложений. Ваш отзыв поможет нам улучшить и определить приоритеты будущих функций.

На данный момент эмулятор Android XR был протестирован на следующих конфигурациях оборудования:

  • Мак (ARM)
  • Windows 11
    • Графический процессор nVidia, 4 ГБ видеопамяти, версия драйвера 553.35 или новее
  • 16 ГБ ОЗУ или больше
  • 8 ядер или более

Известные проблемы

Эмулятор - Стабильность и производительность:

  • В некоторых конфигурациях Windows могут произойти критические блокировки или сбои системы во время загрузки или запуска приложений. Убедитесь, что платформа гипервизора Windows (WHPX) включена, следуя Руководству разработчика Android Studio по включению WHPX .
  • Такие проблемы, как не отвечающие элементы AVD или пользовательского интерфейса на ноутбуках после цикла приостановки-возобновления (например, закрытие и открытие ноутбука).
  • Периодические сбои при переключении приложений из «режим главного экрана» в «полноэкранный режим».
  • API-интерфейсы Gemini пока недоступны; Приложение стартового шаблона Gemini API выйдет из строя.

Эмулятор - Имитация ввода и вывода:

  • Виртуальная клавиатура для полей поиска и редактирования может быть видна в поле зрения лишь частично.
  • Элементы нельзя перемещать по оси Z (внутри экрана и за его пределами) с помощью мыши и клавиатуры.

  • Нестабильность аудиовхода хоста микрофона AVD может привести к перезагрузкам и сбоям AVD.

  • Звук иногда статичен или искажен.

  • Когда камера вынесена за пределы виртуальной гостиной, видны ошибки рендеринга.

  • Конфигурации Windows отображают более темные цвета, чем обычно.

  • Звук больше не работает после бездействия эмулятора и блокировки экрана в macOS. (Перезапуск эмулятора восстановит его.)

  • Сетевое соединение разрывается, когда хост-машина меняет Wi-Fi.

  • При включенном Caps Lock по-прежнему набираются строчные буквы.

  • Прокрутка с помощью трекпада на Mac не является плавной.

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

  • Размытый текст, пользовательский интерфейс и другие сбои в Chrome в некоторых конфигурациях системы Windows. Вероятный обходной путь: включение WHP .

Эмулятор - Моделирование плоскостей и якорей:

  • Якоря иногда не возрождаются рядом с одним и тем же местом.
  • Подвижные панели могут не крепиться к стенам или потолку.
  • Смоделированные плоскости не соответствуют физическому расположению 3D-комнаты в сквозном режиме.
  • В целом ограниченные области для закрепления объектов в виртуальной комнате.
  • Небольшой видимый артефакт в режиме сквозного просмотра в Windows
  • В некоторых случаях размещение привязок может привести к сбою приложения.
  • Черные линии могут появиться поверх приложений при перемещении приложений близко к земле в Windows.

Эмулятор - Другие:

  • Эмулятор запускается только в «автономном» режиме. «Встроенный» режим (встроенный пользовательский интерфейс) пока не поддерживается.
  • Вход в систему с учетными записями эмулятора в Windows может привести к зависанию эмулятора.
  • Содержимое пользовательского интерфейса окон может исчезнуть после изменения размера (обходной путь: нажатие кнопки «Домой»)
  • В приложении JXRCore ActivityPanelTest дополнительная панель изначально не отображается.
  • Элементы быстрых настроек могут исчезнуть из системных настроек по истечении длительного периода времени.
  • Первоначально пользовательский интерфейс эмулятора может отображаться за пределами области экрана. В этом случае слегка отрегулируйте размер окна эмулятора, и оно должно вернуться на место.
  • Эмулятор может не запускаться при использовании Chrome Remote Desktop в Windows
  • Open XR пока не поддерживается в эмуляторе, и приложения Open XR могут привести к сбою эмулятора.
  • Редкие сбои при попытке отправить отчеты об ошибках через расширенные настройки Android Studio в Windows.
  • Значок «Навигация назад» не отображается правильно в приложении «Настройки», пока курсор не будет наведен рядом с ним на Mac.
  • В некоторых случаях при сборке может возникнуть ошибка при использовании модуля «Базовый профиль» как части проекта шаблона XR.
  • Доступность «XR Talkback» пока лишь частично интегрирована в эмулятор.

Приложение для просмотра сцен:

  • Перемещение элементов в Scene Viewer может привести к его сбою. Чтобы обойти эту проблему, просто слегка переместите положение головы от исходного положения (например, с помощью панорамирования, тележки, WASD и т. д.), прежде чем пытаться переместить элемент.
  • Функция реального размера 1:1 не будет работать правильно, если реальный размер 3D-модели ниже или выше минимального и максимального пределов масштаба (в настоящее время они установлены на 20 см и 70 м соответственно).
  • 3D-модель могла прыгать на первом кадре после загрузки.

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.

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/&lt;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-символы или пространства.

Известные проблемы

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

29,0,6 (1 мая 2019 г.)

Это обновление включает в себя несколько новых функций, улучшения существующих функций и исправления ошибок.

Удаление поддержки Windows QEMU1 и 32-битной

Чтобы лучше поддерживать эмулятор, мы больше не отправляем двоичные файлы QEMU1 и 32-битных Windows. Если вы используете 32-битный Windows, вы не можете обновить до версии 29.0.6.

Требования к изображениям системы Android Q

Если вы хотите запустить AVD, который использует системное изображение Android Q, теперь вы должны использовать версию 29.0.6 (эта версия релиза) или выше.

Проект Мрамор улучшения

Это обновление продолжает нашу работу по инициативе Project Marble , которая была объявлена ​​на саммите Android Developer в ноябре 2018 года. Для получения дополнительной информации о других улучшениях Marble Project в предыдущих выпусках см. Emulator Android: Project Marble Улучшения .

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

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

Улучшения для аудио -поведения хоста

Начиная с версии 28.0.3, эмулятор блокирует аудио ввод с хоста по умолчанию.

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

Если вы используете командную строку, вы также можете включить аудио хоста, используя опцию -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 до 5,12 LTS

Это обновление включает в себя следующие улучшения из выпуска QT 5.12 LTS:

  • Чтобы избежать сбоев в декодировании QT libpng при запуске определенных системных изображений, эмулятор теперь использует свою собственную копию 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 Search, которое значительно снижает использование фонового процессора на главном экране и в запуске, когда активное приложение поиска 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 с эмулятором. Если у вас возникают проблемы с «несанкционированными» эмуляторами, сделайте следующие шаги по устранению неполадок:
    1. Выйдите из всех эмуляторов.
    2. Удалите как файлы ~/.android/adbkey и ~/.android/adbkey.pub .
    3. Запустите следующую команду: adb kill-server
    4. Запустите следующую команду: adb devices
    5. Протрите данные AVD.
    6. Перезагрузите эмулятор.

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

Поскольку 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:

Вот некоторые из заметных изменений, которые влияют на эмулятор 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>/*
  • Если эмулятор не может запустить из -за недостаточной бесплатной оперативной памяти, теперь отображается сообщение об ошибке. 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.

Запись экрана

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.

Исправления

  • 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)

Это обновление включает исправления следующих проблем:

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

  • Исправления

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

  • Исправления

    • 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. Это значение по умолчанию.
    • 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:
    • Улучшено использование памяти. 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:

    1. Execute: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. 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.

  • 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 .
  • 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 .
  • 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 and minimize 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 setting GLAsyncSwap = 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.