Android Emulator Apple M1

The Android emulator now works on the Apple M1 chip (Apple Silicon), but only in preview mode. This means that not all functionality is available. This is a preview of some basic Android emulation functionality on the M1. There are still many issues, but apps work at a basic level. To be updated soon with more fixes.

This is the second post that I dedicate to talk about configurations using the new M1 Apple processor. As I said in the previous post, these configurations are workarounds until stable versions are released, however, for me, they have been useful and I guess that someone in the same situation as me can benefit from that.

  • Apple M1 MacBooks will soon be able to run Android apps, as well as iOS. It looks like Android apps could be coming to Apple MacBooks and Macs that run on the new M1 chip, with the BlueStacks.
  • 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. After you have configured the Android Emulator, see Debugging on the Android Emulator for information about how to launch the emulator and use it for testing and debugging your app.

Using Android studio in the new Macbook Air

When you install Android Studio you will get the following warning:

Unable to install Intel® HAXM

Your CPU does not support VT-x.

Unfortunately, your computer does not support hardware-accelerated virtualization.

Here are some of your options:

1 - Use a physical device for testing

2 - Develop on a Windows/OSX computer with an Intel processor that supports VT-x and NX

3 - Develop on a Linux computer that supports VT-x or SVM

4 - Use an Android Virtual Device based on an ARM system image

(This is 10x slower than hardware-accelerated virtualization)

Creating Android virtual device

Android virtual device Pixel_3a_API_30_x86 was successfully created

And also in the Android virtual device (AVD) screen you will read the following warning:

If you want to learn more regarding virtualization in processors you can read the following Wikipedia article, the thing is that our M1 processor doesn’t support VT-x, however, we have options to run an Android Virtual Device.

As the previous message was telling us, we have 4 options. The easiest way to proceed is to use a physical device, but what if you haven’t one available at the moment you are developing?

From now on, we will go with the option of using an Android virtual device based on an ARM system image as options 2 and 3 are not possible to execute.

Using the virtual emulator

The only thing that you have to do is to download the last available emulator for Apple silicon processors from Github https://github.com/741g/android-emulator-m1-preview/releases/tag/0.2

Once you have downloaded you have to right-click to the .dmg file and click open to skip the developer verification.

After installing the virtual emulator, we have to open it from the Applications menu.

After opening it you will see Virtual emulator in Android Studio available to deploy your Android application. Make sure to have Project tools available in Android Studio (View -> Tool Windows -> Project)

After pressing the launch button you will get your Android application running in your ARM virtual emulator :-)

Conclusion

In this post, we have seen that is possible to install Android Studio in Macbook Air M1 and use a virtual device even that your M1 doesn’t support VT-x. You can learn more about this emulator in the following references:

-->

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

After you have verified that hardware acceleration is enabled (asdescribed inHardware Acceleration for Emulator Performance),the next step is to use the Android Device Manager (also referred toas the Xamarin Android Device Manager) to create virtual devices thatyou 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.

You use the Android Device Manager to create and configure AndroidVirtual Devices (AVDs) that run in theAndroid Emulator.Each AVD is an emulator configuration that simulates a physical Androiddevice. This makes it possible to run and test your app in a variety ofconfigurations 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 StudioCommunity, Professional, and Enterprise editions are supported.

  • Visual Studio Tools for Xamarin version 4.9 or later.

  • The Android SDK must be installed (seeSetting up the Android SDK for Xamarin.Android).Be sure to install the Android SDK at its default location if itis not already installed: C:Program Files (x86)Androidandroid-sdk.

  • The following packages must be installed (via theAndroid 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 inthe following screenshot:

Launching the Device Manager

Launch the Android Device Manager from the Tools menu byclicking Tools > Android > Android Device Manager:

Android Emulator On Apple M1

If the following error dialog is presented on launch, see theTroubleshooting section for workaroundinstructions:

Main Screen

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

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

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

New Device

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

Clicking New launches the New Device screen:

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. The Android Device Manager adds the new device to the list ofinstalled virtual devices while displaying a Creating progressindicator during device creation:

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

Edit Device

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

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

The Device Editor screen lists the properties of the virtual deviceunder the Property column, with the corresponding values of each property inthe Value column. When you select a property, a detailed descriptionof 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 propertyis being changed from 480 to 240:

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

Additional Options

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

The additional options menu contains the following items:

  • Duplicate and Edit – Duplicates the currently-selecteddevice and opens it in the New Device screen with a differentunique name. For example, selecting Pixel_API_27 and clickingDuplicate and Edit appends a counter to the name:

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

  • Factory Reset – Resets the selected device to its defaultsettings, erasing any user changes made to the internal state of thedevice while it was running (this also erases the currentQuick Bootsnapshot, if any). This change does not alter modifications that youmake to the virtual device during creation and editing. A dialog boxwill appear with the reminder that this reset cannot be undone. ClickFactory Reset to confirm the reset:

  • Delete – Permanently deletes the selected virtual device. Adialog box will appear with the reminder that deleting a devicecannot be undone. Click Delete if you are certain that you wantto delete the device.

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.

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

Requirements

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

Android Emulator Apple M1 Pro

  • Visual Studio for Mac 7.6 or later.

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

  • The following packages must be installed (via theAndroid 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 inthe following screenshot:

Launching the Device Manager

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

If the following error dialog is presented on launch, see theTroubleshooting section for workaroundinstructions:

Main Screen

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

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

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

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

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

New Device

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

Clicking New Device launches the New Device screen:

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

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

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

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

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

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

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

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

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

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

    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 thenew device:

  9. The Android Device Manager adds the new device to the list ofinstalled virtual devices while displaying a Creating progressindicator during device creation:

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

Android Studio Emulator Mac M1

Edit Device

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

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

The Device Editor screen lists the properties of the virtual deviceunder the Property column, with the corresponding values of each property inthe Value column. When you select a property, a detailed descriptionof 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 propertyis being changed from 480 to 240:

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

Additional Options

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

The additional options menu contains the following items:

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

  • Duplicate and Edit – Duplicates the currently-selecteddevice and opens it in the New Device screen with a differentunique name. For example, selecting Pixel 2 API 28 and clickingDuplicate and Edit appends a counter to the name:

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

  • Factory Reset – Resets the selected device to its defaultsettings, erasing any user changes made to the internal state of thedevice while it was running (this also erases the currentQuick Bootsnapshot, if any). This change does not alter modifications that youmake to the virtual device during creation and editing. A dialog boxwill appear with the reminder that this reset cannot be undone. ClickFactory Reset to confirm the reset.

  • Delete – Permanently deletes the selected virtual device. Adialog box will appear with the reminder that deleting a devicecannot be undone. Click Delete if you are certain that you wantto delete the device.

Troubleshooting

The following sections explain how to diagnose and work around problemsthat may occur when using the Android Device Manager to configurevirtual devices.

Android Emulator Apple M1

Android SDK in Non-Standard Location

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

C:Program Files (x86)Androidandroid-sdk

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

To work around this problem, use the following steps:

  1. From the Windows desktop, navigate toC:UsersusernameAppDataRoamingXamarinDeviceManager:

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

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

  4. In user.config, locate the <UserSettings> element and add anAndroidSdkPath attribute to it. Set this attribute to the pathwhere the Android SDK is installed on your computer and save thefile. For example, <UserSettings> would look like the following ifthe Android SDK was installed at C:ProgramsAndroidSDK:

After making this change to user.config, you should be able tolaunch 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 thiserror dialog on launch:

If you see this error dialog, click Open SDK Manager to open theAndroid SDK Manager. In the Android SDK Manager, click the Toolstab 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:

  5. Restart the AVD.

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

Wrong Version of Android SDK Tools

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

If you see this error dialog, click OK to open the Android SDKManager. In the Android SDK Manager, click the Tools tab andinstall the following packages:

  • Android SDK Tools 26.1.1 or later
  • Android SDK Platform-Tools 28.0.1 or later
  • Android SDK Build-Tools 26.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 Finder.

  3. Navigate to snapshots > default_boot.

  4. Delete the snapshot.pb file:

  5. Restart the AVD.

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

Generating a Bug Report

If you find a problem with the Android Device Manager thatcannot be resolved using the above troubleshooting tips, please file abug report by right-clicking the title bar and selecting Generate BugReport:

If you find a problem with the Android Device Manager thatcannot be resolved using the above troubleshooting tips, please file abug report by clicking Help > Report a Problem:

Summary

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

Related Links

Related Video

Find more Xamarin videos on Channel 9 and YouTube.