.in Mac App Store here’s how to run the iOS app on M1 Mac, but it can be downloaded and used with the help of a popular Emulator called BlueStacks. My first impression of setting up Android App Development on an M1 MacBook Pro is not as positive as I hope to get it, as my blog below. It is working, but it is not ideal in various way. Android studio arm64 emulator shows nothing but a black screen - android-emulator-m1-preview.
Here are some of the best Android emulators for Mac. Bluestacks is one of the most popular Android emulators for Windows and is probably the best Android emulator for macOS, as well. This emulator is built primarily for mobile gamers and claims to provide a “PC-like” gaming experience for your mobile apps. Android emulator run on Macbook M1 Apple silicon, current Google is developing Android emulator for M1 Apple silicon.In video, Android emulator is running on.
Android Emulator M1 Preview
Note: There is an official repo now which is preferred: (https://github.com/google/android-emulator-m1-preview). We will still watch this repo for issues and comments, but please redirect your activity to the official repo.
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. The release tag corresponds to this commit: https://android.googlesource.com/platform/external/qemu/+/aca144a9e9264b11c2d729096af90d695d01455d
Known issues
- Webview doesn't work
- No sound
- No device skins
- Video codecs not working
- 32 bit ARM apps won't work
- Graphical glitches in some Vulkan apps
- Popup on startup about not being able to find the ADB path (ADB will still notice the emulator if you have it installed though)
- When building, it may be faster to start then cancel the Python triggered build and then reissue
ninja -C objs install/strip
versus letting the Python triggered build finish.
How to use
This only works on M1 Apple Silicon Macs. M1 (or equivalently capable) SoCs are required; note that this does not work on DTKs as they do not support ARM64 on ARM64 hardwre virtualization via Hypevisor.framework. However, we have plans to add support there as well via Virtualization.framework.
Go to the Github releases page, download a .dmg, drag to the Applications folder, and run. You'll first need to right click the app icon and select Open and then skip past the developer identity verification step (we are working on providing official identity info). The first few times it starts up it will take a while to show up, but subsequent launches will be faster.
If you've installed Android Studio and Android SDK and adb
is available, the emulator should be visible from Studio and work (deploy built apps, debug apps, etc).
How to configure
Edit /Applications/Android Emulator.app/Contents/MacOS/aosp-master-arm64-v8a/config.ini
. Some notable options:
Android Emulator On Macbook M1 Pro
disk.dataPartition.size
: size of userdata. When reconfiguring, you'll also need to delete alluserdata*.img
files in that directory.fastboot.forceColdBoot
,fastboot.forceFastBoot
: whether to enable snapshots. Current default is snapshots disabled. Setfastboot.forceColdBoot=no
,fastboot.forceFastBoot=yes
to enable snapshots.hw.lcd.density
: Virtual display DPI.hw.lcd.width
,hw.lcd.height
: Virtual display dimensions.hw.ramSize
: RAM limit for the guest. (2GB minimum)
Android Emulator On Macbook M1
How to wipe data
Android Emulator On Macbook M1 Plus
Remove all userdata*.img
files in /Applications/Android Emulator.app/Contents/MacOS/aosp-master-arm64-v8a/
.
How to build your own emulator
Building the engine
The emulator source code lives (here), but there are a bunch of other dependencies to download, so we use repo
.
To build, first make sure you have Xcode and Xcode command line tools installed, and that you have Chromium depot_tools
in your PATH
(link). Then:
Note that canceling the python based build after it gets going and issuing just ninja -C objs install/strip
may be faster.
The built artifacts are in /path/to/external/qemu/objs/distribution/emulator
. They should be automatically signed. However, the binaries in objs/
are not; to sign them, issue ./sign-objs-binaries.sh
. Note that this can only be done after ninja -C objs install/strip
is successful.
Building the system image
The system image is built from AOSP master sdk_phone_arm64
with a few modifications. Ideally, let's be on a Linux host when building the system image---the build is relatively untested on M1 systems, and at least, we need to create a separate case sensitive partition for the AOSP repo. Assuming you're on Linux:
Android Emulator On Macbook M1 Download
We first need to make an edit to remove all 32 bit support. Patch this change: link to build/make/target/board/emulator_arm64/BoardConfig.mk
. Then:
After that's done, we can use this script to package up the system image for use in /Applications/Android Emulator.app/Contents/MacOS/aosp-master-arm64-v8a/
. Assuming you're still in the Android build environment:
Android Emulator Apple M1 Github
Then, $ZIPPED_NAME.zip
can be sent over to the M1 and the contents of its files/
can be coped over into /Applications/Android Emulator.app/Contents/MacOS/aosp-master-arm64-v8a/
.