Developer - Android.com-Run Apps On The Android Emulator
Developer - Android.com-Run Apps On The Android Emulator
Developer - Android.com-Run Apps On The Android Emulator
developer.android.com/studio/run/emulator.html
The Android Emulator simulates Android devices on your computer so that you can test
your application on a variety of devices and Android API levels without needing to have
each physical device.
The emulator provides almost all of the capabilities of a real Android device. You can
simulate incoming phone calls and text messages, specify the location of the device,
simulate different network speeds, simulate rotation and other hardware sensors, access
the Google Play Store, and much more.
Testing your app on the emulator is in some ways faster and easier than doing so on a
physical device. For example, you can transfer data faster to the emulator than to a
device connected over USB.
The emulator comes with predefined configurations for various Android phone, tablet,
Wear OS, and Android TV devices.
You can use the emulator manually through its graphical user interface and
programmatically through the command line and the emulator console. For a
comparison of the features available through each interface, see Comparison of Android
Emulator tools.
The use of hardware acceleration has additional requirements on Windows and Linux:
Intel processor on Windows or Linux: Intel processor with support for Intel VT-x,
Intel EM64T (Intel 64), and Execute Disable (XD) Bit functionality
AMD processor on Linux: AMD processor with support for AMD Virtualization
(AMD-V) and Supplemental Streaming SIMD Extensions 3 (SSSE3)
AMD processor on Windows: Android Studio 3.2 or higher and Windows 10 April
2018 release or higher for Windows Hypervisor Platform (WHPX) functionality
1/19
To work with Android 8.1 (API level 27) and higher system images, an attached webcam
must have the capability to capture 720p frames.
If you are using the emulator on a 32-bit Windows system, you can use the SDK Manager
to install the latest version of the emulator for 32-bit Windows.
Each AVD functions as an independent device, with its own private storage for user data,
SD card, and so on. By default, the emulator stores the user data, SD card data, and
cache in a directory specific to that AVD. When you launch the emulator, it loads the user
data and SD card data from the AVD directory.
1. In Android Studio, create an Android Virtual Device (AVD) that the emulator can use
to install and run your app.
2. In the toolbar, select the AVD that you want to run your app on from the target
device drop-down menu.
2/19
3. Click Run .
If you receive an error or warning message at the top of the dialog, click the link to
correct the problem or to get more information.
Some errors you must fix before you can continue, such as certain Hardware
Accelerated Execution Manager (Intel HAXM) errors.
For macOS, if you see a Warning: No DNS servers found error when starting the
emulator, check to see whether you have an /etc/resolv.conf file. If you don't have
this file, enter the following command in a terminal window:
ln -s /private/var/run/resolv.conf /etc/resolv.conf
While the emulator is running, you can run Android Studio projects and choose the
emulator as the target device. You can also drag one or more APKs onto the emulator to
install them, and then run them.
3/19
To add a file to the emulated device, drag the file onto the emulator screen. The file is
placed in the /sdcard/Download/ directory. You can view the file from Android Studio
using the Device File Explorer, or find it from the device using the Downloads or Files
app, depending on the device version.
Snapshots
A snapshot is a stored image of an AVD (Android Virtual Device) that preserves the entire
state of the device at the time that it was saved – including OS settings, application state,
and user data. You can return to a saved system state by loading a snapshot whenever
you choose, saving you the time of waiting for the operating system and applications on
the virtual device to restart, as well as saving you the effort of bringing your app back to
the state at which you want to resume your testing. Starting a virtual device by loading a
snapshot is much like waking a physical device from a sleep state, as opposed to booting
it from a powered-off state.
For each AVD, you can have one quick-boot snapshot and any number of general
snapshots.
The first time that an AVD starts, it must perform a cold boot, just like powering on a
device. If Quick Boot is enabled, all subsequent starts load from the specified snapshot,
and the system is restored to the state saved in that snapshot.
Snapshots are valid for the system image, AVD configuration, and emulator features with
which they are saved. When you make a change in any of these areas, all snapshots of
the affected AVD become invalid. Any update to the Android Emulator, system image, or
AVD settings resets the AVD's saved state, so the next time you start the AVD, it must
perform a cold boot.
Most controls for saving, loading, and managing snapshots are in the Snapshots pane in
the emulator's Extended controls window.
4/19
You can also control the Quick Boot options when starting the emulator from the
command line.
Yes: Always save an AVD snapshot when you close the emulator. This is the default.
No: Don't save an AVD snapshot when you close the emulator.
Ask: Prompt for whether to save an AVD snapshot when you close the emulator.
If you don't choose Yes in the Save quick-boot state on exit menu to automatically
save a snapshot on exit, you can use the Save Now button below this menu to save a
quick-boot snapshot at any time.
You cannot save snapshots while ADB is offline (such as while Android is still booting).
To save a general snapshot, open the emulator's Extended controls window, select the
Snapshots category, and click the Take snapshot button in the lower-right corner of the
window.
To edit the name and description of the selected snapshot, click the edit button at
the bottom of the window.
Delete a snapshot
To manually delete a snapshot, open the emulator's Extended controls window, select
the Snapshots category, select the snapshot, and click the delete button at the
bottom of the window.
You can also specify whether you would like the emulator to automatically delete
snapshots when they become invalid, such as when the AVD settings or emulator version
change. By default, the emulator will ask you if you'd like for it to delete invalid
snapshots. You can change this setting with the Delete invalid snapshots menu in the
Settings tab of the Snapshots pane.
Load a snapshot
To load a snapshot at any time, open the emulator's Extended controls window, select
the Snapshots category, choose a snapshot, and click the load button at the bottom
of the window.
In Android Studio 3.2 and higher, each device configuration includes a Boot option
control in the advanced settings in the Virtual Device Configuration dialog with which you
can specify which snapshot to load when starting that AVD.
1. Select Tools > AVD Manager and click Edit this AVD .
2. Click Show Advanced Settings and scroll down to Emulated Performance.
3. Select Cold boot.
6/19
Snapshot requirements and troubleshooting
Snapshots do not work with Android 4.0.4 (API level 15) or lower.
Snapshots do not work with ARM system images for Android 8.0 (API level 26).
If the emulator fails to boot from a snapshot, select Cold Boot Now for the AVD in
the AVD Manager and submit a bug report.
Snapshots are not reliable when software rendering is enabled. If snapshots do not
work, click Edit this AVD in the AVD Manager and change Graphics to either
Hardware or Automatic.
Loading or saving a snapshot is a memory-intensive operation. If you do not have
enough RAM free when a load or save operation begins, the operating system may
swap the contents of RAM to the hard disk, which can greatly slow the operation. If
you experience very slow snapshot loads or saves, you may be able to speed these
operations by freeing RAM. Closing applications that are not essential for your
work is a good way to free RAM.
Feature Description
Swipe the screen Point to the screen, press and hold the primary mouse button, swipe
across the screen, and then release.
Drag an item Point to an item on the screen, press and hold the primary mouse
button, move the item, and then release.
7/19
Tap Point to the screen, press the primary mouse button, and then release.
(touch) For example, you could click a text field to start typing in it, select an app,
or press a button.
Double tap Point to the screen, press the primary mouse button quickly twice, and
then release.
Touch and hold Point to an item on the screen, press the primary mouse button, hold,
and then release. For example, you could open options for an item.
Type You can type in the emulator by using your computer keyboard, or using
a keyboard that pops up on the emulator screen. For example, you could
type in a text field after you selected it.
Pinch and spread Pressing Control (Command on Mac) brings up a pinch gesture multi-
touch interface. The mouse acts as the first finger, and across the anchor
point is the second finger. Drag the cursor to move the first point.
Clicking the left mouse button acts like touching down both points, and
releasing acts like picking both up.
Vertical swipe Open a vertical menu on the screen and use the scroll wheel (mouse
wheel) to scroll through the menu items until you see the one you want.
Click the menu item to select it.
You can use keyboard shortcuts to perform many common actions in the emulator. For
a complete list of shortcuts in the emulator, press F1 (Command+/ on Mac) to open the
Help pane in the Extended controls window.
Feature Description
Resize Resize the emulator as you would any other operating system window.
The emulator maintains an aspect ratio appropriate for your device.
8/19
Volume up Click to view a slider control and turn the volume up. Click again to turn
it up more, or use the slider control to change the volume.
Volume down Click to view a slider control and turn the volume down. Click again to
turn it down more, or use the slider control to change the volume.
Take screenshot Click to take a screenshot of the device. For details, see Screenshots.
Enter zoom mode Click so the cursor changes to the zoom icon. To exit zoom mode, click
the button again.
Back Return to the previous screen, or close a dialog box, an options menu,
the Notifications panel, or the onscreen keyboard.
Overview Tap to open a list of thumbnail images of apps you’ve worked with
recently. To open an app, tap it. To remove a thumbnail from the list,
(Recent Apps) swipe it left or right. This button isn't supported for Wear OS.
Fold For foldable devices, fold the device to display its smaller screen
configuration.
Unfold For foldable devices, unfold the device to display its larger screen
configuration.
More Click to access other features and settings, described in the next table.
9/19
Screen recording
You can 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:
Screenshots
To take a screenshot of the virtual device, click the Take screenshot button.
By default, the screenshot is saved on your comupter desktop. To change the location to
which screenshots are saved, use the Screenshot save location control in the Settings
category in the emulator's Extended controls window.
You can also take screenshots from the command line with either of the following
commands:
For information on using the virtual scene camera in the emulator, see Run AR apps in
Android Emulator.
10/19
When using the emulator with a camera app, you can import an image in PNG or JPEG
format to be used within a virtual scene. To choose an image for use in a virtual scene,
click Add image in the Camera > Virtual scene images tab in the Extended controls
window. This feature can be used to import custom images such as QR codes for use
with any camera-based app. For more information, see Add Augmented Images to the
scene.
Before using macros, follow the steps in Run AR apps in Android Emulator to set up the
virtual scene camera for your app, run your app on the emulator, and update ARCore.
Then, follow these steps to use emulator macros:
1. With the emulator running and your app connected to ARCore, click More in
the emulator panel.
2. Select Record and Playback > Macro Playback.
3. Choose a macro that you want to use, then click Play.
You can use keyboard shortcuts to perform many of these tasks. For a complete list of
shortcuts in the emulator, press F1 (Command+/ on Mac) to open the Help pane.
Feature Description
11/19
Location The emulator lets you simulate "my location" information: the location
where the emulated device is currently located. For example, if you click My
Location in Google Maps and then send a location, the map shows it.
For the latitude, - indicates south and + indicates north; for the
longitude, - indicates west and + indicates east. The + is optional.
3. Click Send.
4. Click Run .
12/19
Cellular The emulator lets you simulate various network conditions. You can
approximate the network speed for different network protocols, or you can
specify Full, which transfers data as quickly as your computer allows.
Specifying a network protocol is always slower than Full. You can also
specify the voice and data network status, such as roaming. The defaults
are set in the AVD.
None
Poor
Moderate (default)
Good
Great
Home (default)
Roaming
Searching
Denied (emergency calls only)
Unregistered (off)
13/19
Battery You can simulate the battery properties of a device to see how your app
performs under different conditions. To select a Charge level, use the
slider control.
None
AC charger
Good (default)
Failed
Dead
Overvoltage
Overheated
Unknown
Unknown
Charging (default)
Discharging
Not charging
Full
Phone The emulator lets you simulate incoming phone calls and text messages.
14/19
Directional If the AVD has the directional pad enabled in the hardware profile, you can
Pad use the directional pad controls with the emulator. However, not all devices
can support the directional pad; for example, an Android watch. The
buttons simulate the following actions:
Fingerprint This control can simulate 10 different fingerprint scans. You can use it to
test fingerprint integration in your app. This feature is disabled for Android
5.1 (API level 22) and lower, and for Wear OS.
Virtual This control lets you test your app against changes in device position,
sensors > orientation, or both. For example, you can simulate gestures such as tilt
Accelerometer and rotation. The accelerometer doesn't track the absolute position of the
device: it just detects when a change is occurring. The control simulates the
way accelerometer and magnetometer sensors would respond when you
move or rotate a real device.
You must enable the accelerometer sensor in your AVD to use this control.
To rotate the device around the x, y, and z axes, select Rotate and do one
of the following:
Adjust the Yaw, Pitch, and Roll sliders and observe the position in
the upper pane.
Move the device representation in the upper pane and observe the
Yaw, Pitch, and Roll and how the resulting accelerometer values
change.
See Computing the device's orientation for more information about how
yaw, pitch, and roll are calculated.
To move the device horizontally (x) or vertically (y), select Move and do one
of the following:
Adjust the X and Y sliders and observe the position in the upper
pane.
Move the device representation in the upper pane and observe the X
and Y slider values and how the resulting accelerometer values
change.
As you adjust the device, the Resulting values fields change accordingly.
These are the values that an app can access.
For more information about these sensors, see Sensors overview, Motion
sensors, and Position sensors.
You can import the AccelerometerPlay app to try out the Accelerometer
control. Select File > New > Import Sample and select the app in the
dialog. This app is showcased in the emulator video on this page.
16/19
Virtual The emulator can simulate various position and environment sensors. It
sensors > lets you adjust the following sensors so you can test them with your app:
Additional
sensors Ambient temperature: This environmental sensor measures
ambient air temperature.
Magnetic field: This position sensor measures the ambient magnetic
field on the X, Y, and Z axes, respectively. The values are in
microteslas (μT).
Proximity: This position sensor measures the distance from an
object; for example, it can notify a phone that a face is close to it to
make a call. The proximity sensor must be enabled in your AVD to
use this control.
Light: This environmental sensor measures illuminance. The values
are in lux units.
Pressure: This environmental sensor measures ambient air pressure.
The values are in millibar (hPa) units.
Relative Humidity: This environmental sensor measures ambient
relative humidity.
For more information about these sensors, see Sensors overview, Position
sensors, and Environment sensors.
Settings > By default, the emulator uses the Android Studio HTTP proxy settings, but
Proxy this screen allows you to manually define an HTTP proxy configuration for
the emulator. For more information, see Using the emulator with a proxy.
17/19
Settings > OpenGL ES renderer: Select the graphics acceleration type. (This is
Advanced equivalant to the -gpu command line option).
Autodetect based on host: Let the emulator choose hardware
or software graphics acceleration based on your computer
setup. It checks if your GPU driver matches a list of known
faulty GPU drivers, and if it does, the emulator disables
graphics hardware emulation and instead uses the CPU.
ANGLE: (Windows only.) Use ANGLE Direct3D to render
graphics in software.
SwiftShader: Use SwiftShader to render graphics in software.
Desktop native OpenGL: Use the GPU on your host computer.
This option is typically the fastest. However, some drivers have
issues with rendering OpenGL graphics, so it might not be a
reliable option.
OpenGL ES API level: Select the maximum version of OpenGL ES to
use in the emulator.
Autoselect: Let the emulator choose the OpenGL ES version
based on the host and guest support.
Renderer maximum (up to OpenGL ES 3.1) : Attempt to use
the maximum version of OpenGL ES.
Compatibility (OpenGL ES 1.1/2.0): Use the version of OpenGL
ES that is compatible with most environments.
Help > This pane provides a complete list of keyboard shortcuts for the emulator.
Keyboard To open this pane while working in the emulator, press F1 (Command+/ on
Shortcuts Mac).
For the shortcuts to work, the Send keyboard shortcuts option in the
General settings pane must be set to Emulator controls (default).
Help > To go to the online documentation for the emulator, click Documentation.
Emulator Help
To file a bug against the emulator, click Send feedback. For more
information, see how to report emulator bugs.
Help > About See which adb port the emulator uses, as well as the Android and emulator
version numbers. Compare the latest available emulator version with your
version to determine if you have the latest software installed.
Wi-Fi
When using an AVD with API level 25 or higher, the emulator provides a simulated Wi-Fi
access point ("AndroidWifi"), and Android automatically connects to it.
18/19
You can disable Wi-Fi in the emulator by running the emulator with the command-line
parameter -feature -Wifi .
Limitations
The Android Emulator doesn't include virtual hardware for the following:
Bluetooth
NFC
SD card insert/eject
Device-attached headphones
USB
The watch emulator for Wear OS doesn't provide the Overview (Recent Apps) button, D-
pad, and fingerprint sensor.
19/19