lightbulb_outline Please take our October 2018 developer survey. Start survey

Emulator release notes

Android Emulator is included with Android Studio.

Versions of the emulator prior to 25.3.0 were distributed as part of the Android SDK Tools.

To ensure you have the latest version, check the SDK Manager for updates.

For Android Emulator versions prior to 25.3.0, see the Android SDK Tools release notes.

For details of bugs fixed in each release, see the Android Studio release updates blog.

27.3.8 (July 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Snapshots

You can now save multiple AVD snapshots for a given device configuration and choose which of the saved snapshots to load when you start the emulator.

Starting with Android Studio 3.2 Canary 13, each device configuration includes a control in the advanced settings in the Virtual Device Configuration dialog with which you can you can specify which AVD snapshot to load when starting the AVD.

To accommodate this expansion of the snapshot features, we have added a Snapshots category to the Extended controls dialog. This new pane contains controls for saving and loading AVD snapshots, including the controls for saving and loading the quick-boot snapshot that had previously been in the Settings pane.

You can edit the name and description of each saved snapshot.

For details, see Snapshots.

HAXM 7.2.0

HAXM 7.2.0 is now available in all channels.

This update includes bug fixes and improved support for large amounts of RAM. Also, with this HAXM update and Emulator 27.3 and later, snapshots load their contents into RAM on demand rather than loading the entire snapshot when the virtual device starts. This change should greatly decrease the time needed to load a snapshot.

For details, see Configuring VM acceleration.

27.2.9 (May 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Screen recording

You can now record video and audio from the Android Emulator and save the recording to a WebM or animated GIF file.

The screen recording controls are in the Screen record tab of the Extended Controls window.

Tip: You can also open the screen recording controls by pressing Control + Shift + R (Command + Shift + R on Mac).

To begin screen recording, click the Start recording button in the Screen record tab. To stop recording, click Stop recording.

Controls for playing and saving the recorded video are at the bottom of the Screen record tab. To save the video, choose WebM or GIF from the menu at the bottom of the tab and click Save.

You can also record and save a screen recording from the emulator using the following command on the command line:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

Screenshots

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.

Snapshots

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

Camera

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.

Miscellaneous

The -phone-number-prefix command-line option has been changed to -phone-number [number], which allows setting of the full phone number.

You can now use alphanumeric SMS addresses.

Fixes

  • The Linux version of the Android Emulator is now built using a modern Clang C++ toolchain. This change fixes the issue of the emulator failing to start due to libGL and libstdc++ errors.
  • Fixed several causes of crashes and hangs.
  • To avoid crashes and hangs caused by not having enough free disk space, the emulator now checks for sufficient free disk space on startup, and will not start unless at least 2 GB is free.
  • Fixed an issue that prevented some Unity games from rendering.
  • Fixed DNS issue that caused the emulator to be unable to connect to the network.
  • Fixed an issue that caused changes to the internal storage allocated to an AVD through the Virtual Device Configuration dialog to not work.
  • Fixed an issue of many adb processes being created and not properly shut down.
  • Fixed an issue that caused the rotate buttons and other parts of the UI to become unresponsive unless the Extended controls window was open.
  • Fixed an issue that caused copy and paste from the host to not work unless the Extended controls dialog was opened at least once.
  • The frameless emulator's resize rectangle has been updated to better follow the emulator's visual theme.
  • Telephone and SMS are now properly deactivated when airplane mode is on.
  • Fixed an issue that caused SMS and cellular functionality to be disabled after loading a snapshot.
  • You will no longer receive false warning messages saying “Unable to open... \pstore.bin. Permission denied.”
  • Fixed an issue that prevented re-positioning the AVD on some Mac screens.
  • Fixed issues with flickering and blank screens on newer MacBook Pro computers when running AVDs with Pixel 2 XL skins.
  • Fixed issues with blank screens when switching into zoomed mode while a frameless emulator was active.
  • Fixed an issue that caused the device skin and emulator contents to scroll out of sync when zoomed in.

If you are still experiencing hangs or other instabilities, please file an issue.

27.1.12 (March 2018)

This update includes fixes for the following issues:

  • Bluetooth audio quality degraded after starting the emulator. (Issue 37095756)
  • Locations sent to one emulator were sent to all of them. (Issue 73450633)
  • GPS location set using the console was overridden by values set using Extended Controls > Location in the graphical user interface. (Issue 73471760)

If you are still experiencing hangs or other instabilities, please file an issue.

With this update, a current system image, and a preview version of Android Studio, you can use Android Emulator to run augmented reality applications built with ARCore. For detailed requirements and instructions, see Run AR apps in Android Emulator.

27.1.10 (February 2018)

  • Camera capture resolution

    720p frames can now be captured from an attached webcam.

    To work with Android 8.1 (API level 27) and higher system images, any attached webcam must have the capability to capture 720p frames.

  • Fixes

    • Fixed an issue that caused webcam capture to sometimes output a distorted or all-green image.
    • Fixed an issue that made it possible to see the following message even when there was no actual hang: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".

If you are still experiencing hangs or other instabilities, please file an issue.

27.1.7 (February 2018)

  • Frameless emulator window:

    By default, emulators with device skin files are now shown without a surrounding window frame. To show the surrounding window frame, enable Show window frame around device in the Settings pane of the Extended Controls window.

  • Quick Boot improvements to make working with AVD snapshots more efficient:

    • You can save an AVD snapshot at any time using the Save Now button in the Settings pane of the Extended Controls dialog box.
    • The emulator reduces the time that it takes to save a snapshot in many cases by saving only the difference between the current state and the previously saved snapshot.

    For details, see the Quick Boot documentation.

  • The emulator has been updated to use QEMU 2.9.

    Some notable improvements include the following:

    • Optimized I/O and finer-grained I/O thread locking for greater performance.
    • Fixed bugs since QEMU 2.8 (26.1.4).
    • New implementation of the HAXM back end.

    See the full list of changes in the QEMU 2.9 change log.

  • Swiftshader implementation conforming to OpenGL ES 3.0:

    The emulator's Swiftshader renderer now conforms fully with OpenGL ES 3.0. For details of the Swiftshader renderer, see the Settings > Advanced section of Extended Controls.

  • Fixes

    • Fixed an issue where clipboard sharing was not working unless the Enable clipboard sharing option was toggled off and on.
    • Fixed a hang when using the Swiftshader rendering back end with low-resolution AVDs.

27.0.5 (January 2018)

  • ANGLE for rendering on Windows is now disabled by default.

    If ANGLE works better for you, you can re-enable it with command line flag -gpu angle_indirect. Or, open the Extended controls window, navigate to Settings > Advanced, and select ANGLE D3D11 for the OpenGL ES renderer setting.

  • Fixed an issue where Shift+B does not type a capital B character.

27.0.2 (December 2017)

  • New Quick Boot feature provides faster emulator start times, based on a snapshot of your AVD instance.

    Quick Boot is enabled by default for all AVDs. Although the first time you start an AVD it must perform a cold boot (just like powering on a device), all subsequent starts are fast and the system is restored to the state at which you closed the emulator (similar to waking a device).

    If you want to control when the emulator saves a snapshot, open the emulator's Extended controls window and click Settings. Here, you can select one of the following settings for Save quick boot state on exit:

    • Yes: Always save quick boot snapshot when you close the emulator. This is the default.
    • No: Never save quick boot snapshot; always perform a cold boot.
    • Ask: Prompt whether or not to save quick boot snapshot when you close the emulator.

    Your selection applies only to the currently open AVD.

    For more information, see the Quick Boot documentation.

  • Added support for Mac OpenGL ES 3 (for system images using API level 24 and higher, Google APIs, and the x86 ABI).

  • For added stability in OpenGL ES 2+ apps, emulator now uses OpenGL core profile if available.

  • New options for rendering with Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: Faster, more stable variant of Swiftshader that works with Quick Boot.
    • -gpu angle_indirect (Windows only): More stable variant of ANGLE D3D that also works with Quick Boot.

    The older -gpu swiftshader and -gpu angle options are now deprecated. In the Extended controls window, the "SwiftShader" and "ANGLE" options for the OpenGL ES renderer setting in Settings > Advanced now use the *_indirect variants.

  • Various other bug fixes.

26.1.4 (August 2017)

This is a minor release with bug fixes and the following improvements to GPU configuration:

  • Enable boot animation when running on ANGLE renderer
  • Disable GLES3 when running on ANGLE renderer

26.1.3 (August 2017)

This is a minor release with bug fixes, performance improvements, and small feature changes.

  • This version is now required to use the latest Android 8.0 system images. They are Treble-compliant, featuring separate vendor.img partitions.
  • New HAXM 6.2.0 now available (check the SDK Manager) and includes the following updates:
    • Improved memory usage. The peak working set of memory pinned by HAXM is no longer equal to the size of the AVD's RAM; instead, memory is paged in on demand. This should help the emulator run more reliably on machines with lower amounts of RAM.
    • The emulator with HAXM 6.2.0 can now boot faster on macOS, skipping a lengthy initialization phase.
  • Improvements to GPU configuration
    • Fixed issues with black screen on boot when performing guest-side software rendering by falling back to host-side software rendering with Swiftshader. Latest revisions of system images for API levels 19 - 25 with Google APIs should have working guest-side rendering.
    • Fixed an issue where the emulator was switched to a software renderer due to detecting the presence of older Intel GPUs, but the emulator was actually running on a discrete GPU. Which GPUs will be switched to use ANGLE or Swiftshader rendering is determined as follows:
      • Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D drivers. Users with Intel HD Graphics 3xxx and older will use Swiftshader.
      • Some users reported the inability to use API level 25 images because of a bug in which "Pixel Launcher keeps stopping." This seems to be a driver issue in some Intel HD 4xxx models. So they will be switched to use ANGLE automatically.
    • For best results with GPU emulation, we recommend either to use a discrete NVIDIA or AMD GPU, or a newer Intel GPU (Iris, HD 5xxx, HD 5xx/6xx).
    • Fixed an issue where the emulator would fail to start (OpenGL emulation failed to initialize) if the AVD was configured with hw.gpu.mode=host and the emulator was launched in a remote desktop client.
    • Clarified "OpenGL ES API level (requires restart)" settings; added an option to downgrade from OpenGL ES 3 to OpenGL ES 2 if experiencing issues or needing to test on lower OpenGL ES API levels.
    • Mesa renderer is deprecated; hw.gpu.mode=mesa will now be automatically switched to use Swiftshader on the host.
  • Improvements for macOS:
    • The emulator is now fully compatible with macOS 10.13 High Sierra through either Hypervisor.Framework or HAXM 6.2.0.
    • Hypervisor.framework is now enabled by default on macOS for 32-bit x86 images to improve performance and macOS compatibility. If you experience issues with it specifically, please file a bug report and append HVF = off to ~/.android/advancedFeatures.ini (create this file if it doesn't exist).
    • Fixed issues with no internet / failure to attach debugger while using Hypervisor.framework.
    • To enhance compatibility and performance of webcam capture, the QTKit-based camera capture has been replaced with a buffered one based on AVFoundation.
  • Added support for Wi-Fi in some system images (currently only API level 25). An access point called "AndroidWifi" is available and Android automatically connects to it. Wi-Fi support can be disabled by running the emulator with the command line parameter -feature -Wifi.
  • Some users raised the concern that the fixed-size Play Store system images did not have sufficient storage. As such, we've increased the size to 2 GB by default (up from 800 MB).
  • Added a keyboard shortcut (Ctrl+Shift+U) to open the bug reporting UI page directly from the settings page.
  • Fixed an issue where if an older CPU with Intel x86 EPT but without UG was used, the emulator would fail to boot if more than one core was configured.
  • Fixed an issue where HyperV would be improperly detected if the emulator was itself running in a Xen hypervisor.
  • Fixed an issue where the emulator would crash on start in some Linux configurations.

26.1.2 (July 2017)

This release includes new features and performance improvements.

  • Added the ability to define a custom HTTP proxy configuration in the extended controls (click More , and then click Settings and Proxy). By default, the emulator uses the Android Studio HTTP proxy settings, but this screen allows you to define a manual proxy configuration.

  • Added VNC support for guest mode GPU so emulator can be remotely viewed and controlled. For example, you can launch the emulator and let VNC listen to port 5901 as follows:

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

Dependencies

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

Dependencies

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