https://github.com/reactivecircus/docker-android-images
Docker images for Android SDK and Emulators
https://github.com/reactivecircus/docker-android-images
Last synced: 10 months ago
JSON representation
Docker images for Android SDK and Emulators
- Host: GitHub
- URL: https://github.com/reactivecircus/docker-android-images
- Owner: ReactiveCircus
- License: mit
- Created: 2018-07-26T12:55:46.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2023-02-18T00:31:51.000Z (over 3 years ago)
- Last Synced: 2025-06-01T22:57:40.712Z (about 1 year ago)
- Language: Dockerfile
- Size: 36.1 KB
- Stars: 24
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# docker-android-images
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](https://hub.docker.com/r/reactivecircus/android-sdk-base/tags/)
### Current SDK Versions
* Build tools - `30.0.3`
### 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-`
### Available images
The following images are available on Docker Hub:
- [android-sdk-21](https://hub.docker.com/r/reactivecircus/android-sdk-21/tags/)
- [android-sdk-22](https://hub.docker.com/r/reactivecircus/android-sdk-22/tags/)
- [android-sdk-23](https://hub.docker.com/r/reactivecircus/android-sdk-23/tags/)
- [android-sdk-24](https://hub.docker.com/r/reactivecircus/android-sdk-24/tags/)
- [android-sdk-25](https://hub.docker.com/r/reactivecircus/android-sdk-25/tags/)
- [android-sdk-26](https://hub.docker.com/r/reactivecircus/android-sdk-26/tags/)
- [android-sdk-27](https://hub.docker.com/r/reactivecircus/android-sdk-27/tags/)
- [android-sdk-28](https://hub.docker.com/r/reactivecircus/android-sdk-28/tags/)
- [android-sdk-29](https://hub.docker.com/r/reactivecircus/android-sdk-29/tags/)
- [android-sdk-30](https://hub.docker.com/r/reactivecircus/android-sdk-30/tags/)
### 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 ``.
**Note: host machine must support KVM in order to run accelerated x86 or x86_64 emulators.**
### Image name
`reactivecircus/android-emulator-`
### Images and configurations
The following images are available on Docker Hub:
| Image on Docker Hub | API level | Target | CPU / ABI |
|-|-|-|-|
| [android-emulator-21](https://hub.docker.com/r/reactivecircus/android-emulator-21/tags/) | 21 | default | x86 |
| [android-emulator-22](https://hub.docker.com/r/reactivecircus/android-emulator-22/tags/) | 22 | default | x86 |
| [android-emulator-23](https://hub.docker.com/r/reactivecircus/android-emulator-23/tags/) | 23 | default | x86 |
| [android-emulator-24](https://hub.docker.com/r/reactivecircus/android-emulator-24/tags/) | 24 | default | x86 |
| [android-emulator-25](https://hub.docker.com/r/reactivecircus/android-emulator-25/tags/) | 25 | default | x86 |
| [android-emulator-26](https://hub.docker.com/r/reactivecircus/android-emulator-26/tags/) | 26 | default | x86 |
| [android-emulator-27](https://hub.docker.com/r/reactivecircus/android-emulator-27/tags/) | 27 | default | x86 |
| [android-emulator-28](https://hub.docker.com/r/reactivecircus/android-emulator-28/tags/) | 28 | default | x86 |
| [android-emulator-29](https://hub.docker.com/r/reactivecircus/android-emulator-29/tags/) | 29 | default | x86 |
| [android-emulator-30](https://hub.docker.com/r/reactivecircus/android-emulator-30/tags/) | 30 | google_apis | x86 |
### Base image
`reactivecircus/android-sdk-: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](https://dev.to/ychescale9/running-android-emulators-on-ci-from-bitrise-io-to-github-actions-3j76). 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](https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html) 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](android-emulator-28.Dockerfile) has been updated to the canary build for experimenting with this. [Related discussion with the Android Emulator Team on reddit](https://www.reddit.com/r/androiddev/comments/atm3im/emulator_2818_canary/eh6uv01/?context=8&depth=9)
#### 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](https://androidstudio.googleblog.com/2019/11/emulator-2927-canary.html). 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.