
Hardware profile used for creating the AVD - e.g. arm64-v8a images require Android 4.2+ and are limited to fewer API levels (e.g. Note that x86_64 image is only available for API 21+. Note that aosp_atd and google_atd currently require the following: api-level: 30, arch: x86 or arch: arm64-v8 and channel: canary.ĬPU architecture of the system image - x86, x86_64 or arm64-v8a. Target of the system image - default, google_apis, playstore, android-wear, android-wear-cn, android-tv, google-tv, aosp_atd or google_atd. 23 for Android Marshmallow, 29 for Android 10. Script: echo "Generated AVD snapshot for caching."Įmulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back noneĪPI level of the platform system image - e.g. If: -hit != 'true'Įmulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none name: create AVD and generate snapshot for caching macos-latest, macos-10.15 or macos-11 to take advantage of hardware acceleration support provided by HAXM.Ī workflow that uses android-emulator-runner to run your instrumented tests on API 29:

It is recommended to run this action on a macOS VM, e.g.


You can also achieve this on a self-hosted Linux runner, but it will need to be on a compatible instance that allows you to enable KVM - for example AWS EC2 Bare Metal instances. The macOS VM provided by GitHub Actions has HAXM installed so we are able to create a new AVD instance, launch an emulator with hardware acceleration, and run our Android If you want to learn more about this, here's an article I wrote: Running Android Instrumented Tests on CI. This presents a challenge on CI as to be able to run hardware accelerated emulators within a docker container, KVM must be supported by the host VM which isn't the case for cloud-based CI providers due to infrastructural limits. The modern Intel Atom (x86 and x86_64) emulators require hardware acceleration (HAXM on Mac & Windows, QEMU on Linux) from the host to run fast. The old ARM-based emulators were slow and are no longer supported by Google. A GitHub Action for installing, configuring and running hardware-accelerated Android Emulators on macOS virtual machines.
