The Android Emulator is a component of the Android SDK. It is included with Android Studio. Revisions of the emulator prior to 25.3.0 were distributed as part of the Android SDK Tools.
The sections below provide notes about successive releases of the Android Emulator, as denoted by revision number. To ensure you have the latest version, check the SDK Manager for updates. For Android Emulator revisions prior to 25.3.0, see the Android SDK Tools Release Notes.
Revision 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.
Revision 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.
Revision 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.
-gpu angleoptions 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
Various other bug fixes.
Revision 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
Revision 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,
- New HAXM 6.2.0 now available (check the SDK Manager) and includes the
- 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=hostand 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=mesawill 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 = offto
~/.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
- 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.
Revision 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:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
- Open a VNC viewer, such as tightvnc viewer, to connect to port 5901.
To use Mac's built-in screen sharing client, a VNC password is required when launching the emulator. To set a password, use this command:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
And then enter
change vnc passwordinto 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
- If you experience problems with it, add the line
HVF = offin
- If you experience problems with it, add the line
- OpenGL ES 3.x is now enabled by default for system images and host GPUs that
support OpenGL ES 3. Currently, only Android O (API level 26) and
Windows/Linux hosts support OpenGL ES 3.
- If you experience problems with OpenGL ES 3, add the line
GLESDynamicVersion = offin
- If you experience problems with OpenGL ES 3, add the line
- Emulator now uses offscreen OpenGL FBOs for all rendering except final display image posting, which should help with color consistency issues across platforms.
- After collecting data on sudden emulator slowdown issues, we have determined that the problem may have to do with some interaction between older Intel OpenGL drivers and Windows updates. As such, users with Intel HD 4000, 3000, 2000 (and related GPUs) now have rendering set by default to either a D3D renderer (ANGLE) or Swiftshader (software renderer).
Revision 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
- 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.
Revision 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
mustpasslist. 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 deviceslist 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.
Revision 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.inifile 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.