Merge branch 'master' of github.com:agoda-com/docker-emulator-android

This commit is contained in:
Anton Malinskiy
2018-02-17 01:23:04 +07:00
3 changed files with 39 additions and 5 deletions

View File

@@ -4,10 +4,10 @@ VERSIONS = android-16 android-17 android-18 android-19 android-21 android-22 and
generate: generate:
for version in $(VERSIONS); do \ for version in $(VERSIONS); do \
mkdir -p ./build/$$version ; \ mkdir -p ./build/$$version ; \
sed "s/{{ platform }}/$$version/" templates/Dockerfile > build/$$version/Dockerfile ; \ sed "s/{{ platform }}/$$version/g" templates/Dockerfile > build/$$version/Dockerfile ; \
sed "s/{{ platform }}/$$version/" templates/config.ini > build/$$version/config.ini ; \ sed "s/{{ platform }}/$$version/g" templates/config.ini > build/$$version/config.ini ; \
sed "s/{{ platform }}/$$version/" templates/start.sh > build/$$version/start.sh ; \ sed "s/{{ platform }}/$$version/g" templates/start.sh > build/$$version/start.sh ; \
sed "s/{{ platform }}/$$version/" templates/Makefile > build/$$version/Makefile ; \ sed "s/{{ platform }}/$$version/g" templates/Makefile > build/$$version/Makefile ; \
cp base/* ./build/$$version ; \ cp base/* ./build/$$version ; \
done done

33
README.md Normal file
View File

@@ -0,0 +1,33 @@
[![Build Status](https://travis-ci.org/agoda-com/docker-emulator-android.svg?branch=master)](https://travis-ci.org/agoda-com/docker-emulator-android)
[![Docker Stars](https://img.shields.io/docker/stars/agoda-com/docker-emulator-android.svg)]()
[![Docker Pulls](https://img.shields.io/docker/pulls/agoda-com/docker-emulator-android.svg)]()
# docker-emulator-android
docker-emulator-android is one of the components of [android-farm](https://github.com/agoda-com/android-farm). It runs android emulator with hardware acceleration in a container.
# Features
- Compatible with [OpenSTF](https://openstf.io)
- Optimized for performance
- hardware acceleration using KVM
- QEMU 2
- Changing emulator spec is supported by
- overriding config.ini variables using `ANDROID_CONFIG`
- overriding emulator cmd args using `EMULATOR_OPTS` and `QEMU_OPTS`
- overriding adb ports using `CONSOLE_PORT (default 5554)`, `ADB_PORT (default 5555)`
- VNC server (port 5900)
- Google API's enabled
# Usage
For example to run default emulator options with Marshmallow (API 23):
```console
$ docker run --rm --privileged -e ANDROID_ARCH="x86" -v /dev/kvm:/dev/kvm agoda-com/docker-emulator-android-23:latest
$ adb connect VIP:5555
```
If you want to start different configuration of device, for example a 7 inch tablet, you need to override `config.ini` variables:
```console
$ docker run --rm --privileged -e ANDROID_ARCH="x86" -e ANDROID_CONFIG="skin.name=600x1024;hw.lcd.density=160;hw.lcd.height=600;hw.lcd.width=1024;hw.device.name=7in WSVGA (Tablet);avd.ini.displayname=7 WSVGA (Tablet) API 23;" -v /dev/kvm:/dev/kvm agoda-com/docker-emulator-android-23:latest
```
For all the options available please check the [official documentation](https://developer.android.com/studio/run/emulator-commandline.html)

View File

@@ -27,13 +27,14 @@ RUN dpkg --add-architecture i386 && \
# Install Android SDK # Install Android SDK
curl -L $LINK_ANDROID_SDK > /tmp/android-sdk-linux.zip && \ curl -L $LINK_ANDROID_SDK > /tmp/android-sdk-linux.zip && \
unzip /tmp/android-sdk-linux.zip -d /opt/android-sdk-linux/ && \ unzip -q /tmp/android-sdk-linux.zip -d /opt/android-sdk-linux/ && \
rm /tmp/android-sdk-linux.zip && \ rm /tmp/android-sdk-linux.zip && \
# Customized steps per specific platform # Customized steps per specific platform
yes | sdkmanager --no_https --licenses && \ yes | sdkmanager --no_https --licenses && \
sdkmanager --no_https emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86" --verbose && \ sdkmanager --no_https emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86" --verbose && \
echo no | avdmanager create avd -n "x86" --package "system-images;{{ platform }};google_apis;x86" --tag google_apis && \ echo no | avdmanager create avd -n "x86" --package "system-images;{{ platform }};google_apis;x86" --tag google_apis && \
# Unfilter devices (now local because CI downloads from github are unstable) # Unfilter devices (now local because CI downloads from github are unstable)
# curl -o /root/.android/adb_usb.ini https://raw.githubusercontent.com/apkudo/adbusbini/master/adb_usb.ini && \ # curl -o /root/.android/adb_usb.ini https://raw.githubusercontent.com/apkudo/adbusbini/master/adb_usb.ini && \