Change AVD name and architecture
This commit is contained in:
@@ -16,14 +16,14 @@ docker-emulator-android is one of the components of [android-farm](https://githu
|
||||
# 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
|
||||
$ docker run --rm --privileged -e ANDROID_ARCH="x86_64" -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
|
||||
$ docker run --rm --privileged -e ANDROID_ARCH="x86_64" -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)
|
||||
|
||||
@@ -33,8 +33,8 @@ RUN dpkg --add-architecture i386 && \
|
||||
rm /tmp/android-sdk-linux.zip && \
|
||||
# Customized steps per specific platform
|
||||
yes | sdkmanager --no_https --licenses && \
|
||||
yes | sdkmanager emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86" --verbose | uniq && \
|
||||
echo no | avdmanager create avd -n "x86" --package "system-images;{{ platform }};google_apis;x86" --tag google_apis && \
|
||||
yes | sdkmanager emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86_64" --verbose | uniq && \
|
||||
echo no | avdmanager create avd -n "Pixel2" --package "system-images;{{ platform }};google_apis;x86_64" --tag google_apis && \
|
||||
# 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 && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -yq unzip openjdk-8-jdk && \
|
||||
@@ -45,18 +45,18 @@ RUN dpkg --add-architecture i386 && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# Convert large partitions to qcow2 to save space
|
||||
# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.qcow2 && \
|
||||
# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img && \
|
||||
# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.qcow2 && \
|
||||
# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img && \
|
||||
# qemu-img resize /root/.android/avd/x86.avd/userdata.img 2G && \
|
||||
# resize2fs /root/.android/avd/x86.avd/userdata.img && \
|
||||
# qemu-img convert -O qcow2 -c /root/.android/avd/x86.avd/userdata.img /root/.android/avd/x86.avd/userdata.qcow2 && \
|
||||
# mv /root/.android/avd/x86.avd/userdata.qcow2 /root/.android/avd/x86.avd/userdata.img && \
|
||||
# (qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.qcow2 && \
|
||||
# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.img || true)
|
||||
# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.qcow2 && \
|
||||
# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/system.img && \
|
||||
# qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.qcow2 && \
|
||||
# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/userdata.img && \
|
||||
# qemu-img resize /root/.android/avd/Pixel2.avd/userdata.img 2G && \
|
||||
# resize2fs /root/.android/avd/Pixel2.avd/userdata.img && \
|
||||
# qemu-img convert -O qcow2 -c /root/.android/avd/Pixel2.avd/userdata.img /root/.android/avd/Pixel2.avd/userdata.qcow2 && \
|
||||
# mv /root/.android/avd/Pixel2.avd/userdata.qcow2 /root/.android/avd/Pixel2.avd/userdata.img && \
|
||||
# (qemu-img convert -O qcow2 -c /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.qcow2 && \
|
||||
# mv /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86_64/vendor.img || true)
|
||||
|
||||
COPY config.ini /root/.android/avd/x86.avd/config.ini
|
||||
COPY config.ini /root/.android/avd/Pixel2.avd/config.ini
|
||||
|
||||
# Expose adb
|
||||
EXPOSE 5037 5554 5555 5900
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
avd.ini.encoding=UTF-8
|
||||
AvdId=x86
|
||||
AvdId=Pixel2
|
||||
PlayStore.enabled=true
|
||||
abi.type=x86
|
||||
avd.ini.displayname=x86
|
||||
abi.type=x86_64
|
||||
avd.ini.displayname=Pixel2
|
||||
disk.dataPartition.size=2048M
|
||||
hw.accelerometer=yes
|
||||
hw.audioInput=no
|
||||
hw.battery=yes
|
||||
hw.camera.back=none
|
||||
hw.camera.front=none
|
||||
hw.cpu.arch=x86
|
||||
hw.cpu.arch=x86_64
|
||||
hw.cpu.ncore=2
|
||||
hw.dPad=no
|
||||
hw.device.hash2=MD5:1be89bc42ec9644d4b77968b23474980
|
||||
@@ -26,7 +26,7 @@ hw.ramSize=1536
|
||||
hw.sensors.orientation=yes
|
||||
hw.sensors.proximity=yes
|
||||
hw.trackBall=no
|
||||
image.sysdir.1=system-images/{{ platform }}/google_apis/x86/
|
||||
image.sysdir.1=system-images/{{ platform }}/google_apis/x86_64/
|
||||
runtime.network.latency=none
|
||||
runtime.network.speed=full
|
||||
showDeviceFrame=no
|
||||
|
||||
@@ -21,7 +21,7 @@ Xvfb :1 +extension GLX +extension RANDR +extension RENDER +extension XFIXES -scr
|
||||
XVFB_PID=$!
|
||||
|
||||
cd /opt/android-sdk-linux/emulator
|
||||
LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd x86 -snapshot default -no-snapshot-save &
|
||||
LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd Pixel2 -snapshot default -no-snapshot-save &
|
||||
EMULATOR_PID=$!
|
||||
|
||||
adb wait-for-device
|
||||
@@ -45,8 +45,8 @@ save
|
||||
adb emu kill
|
||||
|
||||
# Doesn't work: triggers cold boot
|
||||
# qemu-img convert -O qcow2 -c /root/.android/avd/x86.avd/userdata-qemu.img /root/.android/avd/x86.avd/userdata-qemu.img_qcow2
|
||||
# mv /root/.android/avd/x86.avd/userdata-qemu.img_qcow2 /root/.android/avd/x86.avd/userdata-qemu.img
|
||||
# qemu-img convert -O qcow2 -c /root/.android/avd/Pixel2.avd/userdata-qemu.img /root/.android/avd/Pixel2.avd/userdata-qemu.img_qcow2
|
||||
# mv /root/.android/avd/Pixel2.avd/userdata-qemu.img_qcow2 /root/.android/avd/Pixel2.avd/userdata-qemu.img
|
||||
|
||||
# Moving adb binary away so that stopping adb server with delay will release the emulator and will make it available for external connections
|
||||
mv /opt/android-sdk-linux/platform-tools/adb /opt/android-sdk-linux/platform-tools/_adb
|
||||
|
||||
@@ -51,7 +51,7 @@ VNC_PID=$!
|
||||
# qemu references bios by relative path
|
||||
cd /opt/android-sdk-linux/emulator
|
||||
|
||||
CONFIG="/root/.android/avd/x86.avd/config.ini"
|
||||
CONFIG="/root/.android/avd/Pixel2.avd/config.ini"
|
||||
CONFIGTMP=${CONFIG}.tmp
|
||||
|
||||
if [ -n "$ANDROID_CONFIG" ];
|
||||
@@ -69,4 +69,4 @@ fi
|
||||
|
||||
echo "emulator_opts: $emulator_opts"
|
||||
|
||||
LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd x86 -ports $console_port,$adb_port $emulator_opts -qemu $QEMU_OPTS
|
||||
LIBGL_DEBUG=verbose ./qemu/linux-x86_64/qemu-system-x86_64 -avd Pixel2 -ports $console_port,$adb_port $emulator_opts -qemu $QEMU_OPTS
|
||||
|
||||
@@ -7,7 +7,7 @@ snapshot_image_name=$2
|
||||
|
||||
docker rm -f emulator || true
|
||||
|
||||
docker run -d -t --name emulator --rm --privileged -v /dev/kvm:/dev/kvm -e ANDROID_ARCH="x86" $image_name bash
|
||||
docker run -d -t --name emulator --rm --privileged -v /dev/kvm:/dev/kvm -e ANDROID_ARCH="x86_64" $image_name bash
|
||||
|
||||
docker cp snapshot.sh emulator:/snapshot.sh
|
||||
docker cp snapshot.expect emulator:/snapshot.expect
|
||||
|
||||
Reference in New Issue
Block a user