docker-android-images

Introduction: Docker images for Android SDK and Emulators
More: Author   ReportBugs   
Tags:

Docker images for Android SDK and Emulators

Android SDK Base Image

Downloads the Android SDK and installs build tools and platform tools.

Image name

reactivecircus/android-sdk-base

Image version

Image versions (tags) can be found on Docker Hub

Current SDK Versions

  • Build tools - 30.0.1

Base image

ubuntu:bionic

Included packages

  • openjdk-14-jdk
  • curl
  • zip
  • unzip
  • git

Android SDK Images

Downloads Android SDK platform for a specific API level.

Image name

reactivecircus/android-sdk-<api-level>

Available images

The following images are available on Docker Hub:

Base image

reactivecircus/android-sdk-base:latest

Android Emulator Images

Downloads and installs packages required for hardware acceleration with kvm, and the x86 / x86_64 Android system image for the <api-level>.

Note: host machine must support KVM in order to run accelerated x86 or x86_64 emulators.

Image name

reactivecircus/android-emulator-<api-level>

Images and configurations

The following images are available on Docker Hub:

Image on Docker Hub API level Target CPU / ABI
android-emulator-21 21 default x86
android-emulator-22 22 default x86
android-emulator-23 23 default x86
android-emulator-24 24 default x86
android-emulator-25 25 default x86
android-emulator-26 26 default x86
android-emulator-27 27 default x86
android-emulator-28 28 default x86
android-emulator-29 29 default x86
android-emulator-30 30 google_apis x86

Base image

reactivecircus/android-sdk-<api-level>:latest

Included packages

  • libc++1

Notes on running Emulators on CI

Running hardware-accelerated Emulators on cloud-hosted CI has been challenging due to KVM being required from the host VM. I wrote about it here. The following is a list of changes Google made to help improve this experience.

Update 1 (26/02/2019)

The new emulator 28.1.8 Canary introduced a headless emulator build without KVM dependency which is a blocker for running instrumented tests on most cloud CI services as the host machines usually don't have the required bios settings turned on for KVM. The android-emulator-28.Dockerfile has been updated to the canary build for experimenting with this. Related discussion with the Android Emulator Team on reddit

Update 2 (17/08/2019)

emulator-headless has been released to stable channel for a few months but is still not practically usable in a CI environment with limited memory.

Update 3 (02/11/2019)

emulator-headless is retired in Emulator 29.2.7 Canary. Headless emulator can be launched with emulator -no-window.

Scheduled release

All images are automatically re-built and pushed weekly to package the latest stable version of the SDK components.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools