Managing Virtual Devices with the Android Device Manager

This article explains how to use the Android Device Manager to create and configure Android Virtual Devices (AVDs) that emulate physical Android devices. You can use these virtual devices to run and test your app without having to rely on a physical device.

After you have verified that hardware acceleration is enabled (as described in Hardware Acceleration for Emulator Performance), the next step is to use the Android Device Manager (also referred to as the Xamarin Android Device Manager) to create virtual devices that you can use to test and debug your app.

Android Device Manager on Windows

This article explains how to use the Android Device Manager to create, duplicate, customize, and launch Android virtual devices.

Screenshot of the Android Device Manager in the Devices tab

You use the Android Device Manager to create and configure Android Virtual Devices (AVDs) that run in the Android Emulator. Each AVD is an emulator configuration that simulates a physical Android device. This makes it possible to run and test your app in a variety of configurations that simulate different physical Android devices.

Requirements

To use the Android Device Manager, you will need the following items:

  • Visual Studio 2019 Community, Professional, or Enterprise.

  • OR Visual Studio 2017 version 15.8 or later is required. Visual Studio Community, Professional, and Enterprise editions are supported.

  • Visual Studio Tools for Xamarin version 4.9 or later.

  • The Android SDK must be installed (see Setting up the Android SDK for Xamarin.Android). Be sure to install the Android SDK at its default location if it is not already installed: C:\Program Files (x86)\Android\android-sdk.

  • The following packages must be installed (via the Android SDK Manager):

    • Android SDK Tools version 26.1.1 or later
    • Android SDK Platform-Tools 27.0.1 or later
    • Android SDK Build-Tools 27.0.3 or later
    • Android Emulator 27.2.7 or later.

    These packages should be displayed with Installed status as seen in the following screenshot:

    Installing Android SDK Tools

Launching the Device Manager

Launch the Android Device Manager from the Tools menu by clicking Tools > Android > Android Device Manager:

Launching the Device manager from the Tools menu

If the following error dialog is presented on launch, see the Troubleshooting section for workaround instructions:

Android SDK instance error dialog

Main Screen

When you first launch the Android Device Manager, it presents a screen that displays all currently-configured virtual devices. For each virtual device, the Name, OS (Android Version), Processor, Memory size, and screen Resolution are displayed:

List of installed devices and their parameters

When you select a device in the list, the Start button appears on the right. You can click the Start button to launch the emulator with this virtual device:

Start button for a device image

After the emulator starts with the selected virtual device, the Start button changes to a Stop button that you can use to halt the emulator:

Stop button for the running device

New Device

To create a new device, click the New button (located in the upper right-hand area of the screen):

New button for creating a new device

Clicking New launches the New Device screen:

New Device screen of the Device Manager

To configure a new device in the New Device screen, use the following steps:

  1. Give the device a new name. In the following example, the new device is named Pixel_API_27:

    Naming the new device

  2. Select a physical device to emulate by clicking the Base Device pull-down menu:

    Selecting the physical device to emulate

  3. Select a processor type for this virtual device by clicking the Processor pull-down menu. Selecting x86 will provide the best performance because it enables the emulator to take advantage of hardware acceleration. The x86_64 option will also make use of hardware acceleration, but it runs slightly slower than x86 (x86_64 is normally used for testing 64-bit apps):

    Selecting the processor type

  4. Select the Android version (API level) by clicking the OS pull-down menu. For example, select Oreo 8.1 - API 27 to create a virtual device for API level 27:

    Selecting the Android version

    If you select an Android API level that has not yet been installed, the Device Manager will display A new device will be downloaded message at the bottom of the screen – it will download and install the necessary files as it creates the new virtual device:

    A new device image will be downloaded

  5. If you want to include Google Play Services APIs in your virtual device, enable the Google APIs option. To include the Google Play Store app, enable the Google Play Store option:

    Selecting Google Play Services and Google Play Store

    Note that Google Play Store images are available only for some base device types such as Pixel, Pixel 2, Nexus 5, and Nexus 5X.

  6. Edit any properties that you need to modify. To make changes to properties, see Editing Android Virtual Device Properties.

  7. Add any additional properties that you need to explicitly set. The New Device screen lists only the most commonly-modified properties, but you can click the Add Property pull-down menu (at the bottom) to add additional properties:

    Add Property pull-down menu

    You can also define a custom property by selecting Custom... at the top of the property list.

  8. Click the Create button (lower right-hand corner) to create the new device:

    Create button

  9. You might get a License Acceptance screen. Click Accept if you agree to the license terms:

    License Acceptance screen

  10. The Android Device Manager adds the new device to the list of installed virtual devices while displaying a Creating progress indicator during device creation:

    Creation progress Indicator

  11. When the creation process is complete, the new device is shown in the list of installed virtual devices with a Start button, ready to launch:

    Newly-created device ready to launch

Edit Device

To edit an existing virtual device, select the device and click the Edit button (located in the upper right-hand corner of the screen):

Edit button for modifying a device

Clicking Edit launches the Device Editor for the selected virtual device:

Device Editor screen

The Device Editor screen lists the properties of the virtual device under the Property column, with the corresponding values of each property in the Value column. When you select a property, a detailed description of that property is displayed on the right.

To change a property, edit its value in the Value column. For example, in the following screenshot the hw.lcd.density property is being changed from 480 to 240:

Device Editing example

After you have made the necessary configuration changes, click the Save button. For more information about changing virtual device properties, see Editing Android Virtual Device Properties.

Additional Options

Additional options for working with devices are available from the Additional Options (…) pull-down menu in the upper right-hand corner:

Location of additional options menu

The additional options menu contains the following items:

  • Duplicate and Edit – Duplicates the currently-selected device and opens it in the New Device screen with a different unique name. For example, selecting Pixel_API_27 and clicking Duplicate and Edit appends a counter to the name:

    Duplicate and Edit screen

  • Reveal in Explorer – Opens a Windows Explorer window in the folder that holds the files for the virtual device. For example, selecting Pixel_API_27 and clicking Reveal in Explorer opens a window like the following example:

    Results of clicking Reveal in Explorer

  • Factory Reset – Resets the selected device to its default settings, erasing any user changes made to the internal state of the device while it was running (this also erases the current Quick Boot snapshot, if any). This change does not alter modifications that you make to the virtual device during creation and editing. A dialog box will appear with the reminder that this reset cannot be undone. Click Factory Reset to confirm the reset:

    Factory Reset dialog

  • Delete – Permanently deletes the selected virtual device. A dialog box will appear with the reminder that deleting a device cannot be undone. Click Delete if you are certain that you want to delete the device.

    Delete device dialog

Note

If you are using a Mac with an Apple chip, such as the M1, you will need to install the Android Emulator for M1 preview from GitHub.

Android Device Manager on macOS

This article explains how to use the Android Device Manager to create, duplicate, customize, and launch Android virtual devices.

Screenshot of the Android Device Manager in the Devices tab

You use the Android Device Manager to create and configure Android Virtual Devices (AVDs) that run in the Android Emulator. Each AVD is an emulator configuration that simulates a physical Android device. This makes it possible to run and test your app in a variety of configurations that simulate different physical Android devices.

Requirements

To use the Android Device Manager, you will need the following items:

  • Visual Studio for Mac 7.6 or later.

  • The Android SDK must be installed (see Setting up the Android SDK for Xamarin.Android).

  • The following packages must be installed (via the Android SDK Manager):

    • SDK tools version 26.1.1 or later
    • Android SDK Platform-Tools 28.0.1 or later
    • Android SDK Build-Tools 26.0.3 or later

    These packages should be displayed with Installed status as seen in the following screenshot:

    Installing Android SDK Tools

Launching the Device Manager

Launch the Android Device Manager by clicking Tools > Device Manager:

Launching the Device manager from the Tools menu

If the following error dialog is presented on launch, see the Troubleshooting section for workaround instructions:

Screenshot shows the Android SDK instance error dialog box for troubleshooting information.

Main Screen

When you first launch the Android Device Manager, it presents a screen that displays all currently-configured virtual devices. For each virtual device, the Name, OS (Android Version), Processor, Memory size, and screen Resolution are displayed:

List of installed devices and their parameters

When you select a device in the list, the Play button appears on the right. You can click the Play button to launch the emulator with this virtual device:

Play button for a device image

After the emulator starts with the selected virtual device, the Play button changes to a Stop button that you can use to halt the emulator:

Stop button for the running device

When you stop the emulator, you may get a prompt asking if you want to save the current state for the next quick boot:

Save current state for Quick Boot dialog

Saving the current state will make the emulator boot faster when this virtual device is launched again. For more information about Quick Boot, see Quick Boot.

New Device

To create a new device, click the New Device button (located in the upper left-hand area of the screen):

New button for creating a new device

Clicking New Device launches the New Device screen:

New Device screen of the Device Manager

Use the following steps to configure a new device in the New Device screen:

  1. Give the device a new name. In the following example, the new device is named Pixel_API_27:

    Naming the new device

  2. Select a physical device to emulate by clicking the Base Device pull-down menu:

    Selecting the physical device to emulate

  3. Select a processor type for this virtual device by clicking the Processor pull-down menu. Selecting x86 will provide the best performance because it enables the emulator to take advantage of hardware acceleration. The x86_64 option will also make use of hardware acceleration, but it runs slightly slower than x86 (x86_64 is normally used for testing 64-bit apps):

    Selecting the processor type

  4. Select the Android version (API level) by clicking the OS pull-down menu. For example, select Oreo 8.1 - API 27 to create a virtual device for API level 27:

    Selecting the Android version

    If you select an Android API level that has not yet been installed, the Device Manager will display A new device will be downloaded message at the bottom of the screen – it will download and install the necessary files as it creates the new virtual device:

    A new device image will be downloaded

  5. If you want to include Google Play Services APIs in your virtual device, enable the Google APIs option. To include the Google Play Store app, enable the Google Play Store option:

    Selecting Google Play Services and Google Play Store

    Note that Google Play Store images are available only for some base device types such as Pixel, Pixel 2, Nexus 5, and Nexus 5X.

  6. Edit any properties that you need to modify. To make changes to properties, see Editing Android Virtual Device Properties.

  7. Add any additional properties that you need to explicitly set. The New Device screen lists only the most commonly-modified properties, but you can click the Add Property pull-down menu (at the bottom) to add additional properties:

    Add Property pull-down menu

    You can also define a custom property by clicking Custom... at the top of this property list.

  8. Click the Create button (lower right-hand corner) to create the new device:

    Create button

  9. The Android Device Manager adds the new device to the list of installed virtual devices while displaying a Creating progress indicator during device creation:

    Creation progress indicator

  10. When the creation process is complete, the new device is shown in the list of installed virtual devices with a Start button, ready to launch:

    Newly-created device ready to launch

Edit Device

To edit an existing virtual device, select the Additional Options pull-down menu (gear icon) and select Edit:

Edit menu selection for modifying a new device

Clicking Edit launches the Device Editor for the selected virtual device:

Device Editor screen

The Device Editor screen lists the properties of the virtual device under the Property column, with the corresponding values of each property in the Value column. When you select a property, a detailed description of that property is displayed on the right.

To change a property, edit its value in the Value column. For example, in the following screenshot the hw.lcd.density property is being changed from 480 to 240:

Device Editing example

After you have made the necessary configuration changes, click the Save button. For more information about changing virtual device properties, see Editing Android Virtual Device Properties.

Additional Options

Additional options for working with a device are available from the pull-down menu located to the left of the Play button:

Location of additional options menu

The additional options menu contains the following items:

  • Edit – Opens the currently-selected device in the device editor as described earlier.

  • Duplicate and Edit – Duplicates the currently-selected device and opens it in the New Device screen with a different unique name. For example, selecting Pixel 2 API 28 and clicking Duplicate and Edit appends a counter to the name:

    Duplicate and Edit screen

  • Reveal in Finder – Opens a macOS Finder window in the folder that holds the files for the virtual device. For example, selecting Pixel 2 API 28 and clicking Reveal in Finder opens a window like the following example:

    Results of clicking Reveal in Finder

  • Factory Reset – Resets the selected device to its default settings, erasing any user changes made to the internal state of the device while it was running (this also erases the current Quick Boot snapshot, if any). This change does not alter modifications that you make to the virtual device during creation and editing. A dialog box will appear with the reminder that this reset cannot be undone. Click Factory Reset to confirm the reset.

    Factory reset dialog

  • Delete – Permanently deletes the selected virtual device. A dialog box will appear with the reminder that deleting a device cannot be undone. Click Delete if you are certain that you want to delete the device.

    Delete device dialog


Troubleshooting

The following sections explain how to diagnose and work around problems that may occur when using the Android Device Manager to configure virtual devices.

Android SDK in Non-Standard Location

Typically, the Android SDK is installed at the following location:

C:\Program Files (x86)\Android\android-sdk

If the SDK is not installed at this location, you may get this error when you launch the Android Device Manager:

Android SDK instance error

To work around this problem, use the following steps:

  1. From the Windows desktop, navigate to C:\Users\username\AppData\Roaming\XamarinDeviceManager:

    Android Device Manager log file location

  2. Double-click to open one of the log files and locate the Config file path. For example:

    Config file path in log file

  3. Navigate to this location and double-click user.config to open it.

  4. In user.config, locate the <UserSettings> element and add an AndroidSdkPath attribute to it. Set this attribute to the path where the Android SDK is installed on your computer and save the file. For example, <UserSettings> would look like the following if the Android SDK was installed at C:\Programs\Android\SDK:

    <UserSettings SdkLibLastWriteTimeUtcTicks="636409365200000000" AndroidSdkPath="C:ProgramsAndroidSDK" />
    

After making this change to user.config, you should be able to launch the Android Device Manager.

Wrong Version of Android SDK Tools

If Android SDK tools 26.1.1 or later is not installed, you may see this error dialog on launch:

Screenshot shows the Android SDK instance error dialog box.

If you see this error dialog, click Open SDK Manager to open the Android SDK Manager. In the Android SDK Manager, click the Tools tab and install the following packages:

  • Android SDK Tools 26.1.1 or later
  • Android SDK Platform-Tools 27.0.1 or later
  • Android SDK Build-Tools 27.0.3 or later

Snapshot disables WiFi on Android Oreo

If you have an AVD configured for Android Oreo with simulated Wi-Fi access, restarting the AVD after a snapshot may cause Wi-Fi access to become disabled.

To work around this problem,

  1. Select the AVD in the Android Device Manager.

  2. From the additional options menu, click Reveal in Explorer.

  3. Navigate to snapshots > default_boot.

  4. Delete the snapshot.pb file:

    Location of the snapshot.pb file

  5. Restart the AVD.

After these changes are made, the AVD will restart in a state that allows Wi-Fi to work again.

Generating a Bug Report

If you find a problem with the Android Device Manager that cannot be resolved using the above troubleshooting tips, please file a bug report by right-clicking the title bar and selecting Generate Bug Report:

Location of menu item for filing a bug report

Summary

This guide introduced the Android Device Manager available in Visual Studio Tools for Xamarin and Visual Studio for Mac. It explained essential features such as starting and stopping the Android emulator, selecting an Android virtual device (AVD) to run, creating new virtual devices, and how to edit a virtual device. It explained how to edit profile hardware properties for further customization, and it provided troubleshooting tips for common problems.

Find more Xamarin videos on Channel 9 and YouTube.