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
|
# Usage
|
||||||
For example to run default emulator options with Marshmallow (API 23):
|
For example to run default emulator options with Marshmallow (API 23):
|
||||||
```console
|
```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
|
$ 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:
|
If you want to start different configuration of device, for example a 7 inch tablet, you need to override `config.ini` variables:
|
||||||
|
|
||||||
```console
|
```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)
|
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 && \
|
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 && \
|
||||||
yes | sdkmanager emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86" --verbose | uniq && \
|
yes | sdkmanager emulator tools platform-tools "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86_64" --verbose | uniq && \
|
||||||
echo no | avdmanager create avd -n "x86" --package "system-images;{{ platform }};google_apis;x86" --tag google_apis && \
|
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)
|
# 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 && \
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get purge -yq unzip openjdk-8-jdk && \
|
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/*
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
# Convert large partitions to qcow2 to save space
|
# 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 && \
|
# 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/system.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/system.img && \
|
# 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/userdata.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.qcow2 && \
|
# 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/userdata.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/userdata.img && \
|
# 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/x86.avd/userdata.img 2G && \
|
# qemu-img resize /root/.android/avd/Pixel2.avd/userdata.img 2G && \
|
||||||
# resize2fs /root/.android/avd/x86.avd/userdata.img && \
|
# resize2fs /root/.android/avd/Pixel2.avd/userdata.img && \
|
||||||
# qemu-img convert -O qcow2 -c /root/.android/avd/x86.avd/userdata.img /root/.android/avd/x86.avd/userdata.qcow2 && \
|
# qemu-img convert -O qcow2 -c /root/.android/avd/Pixel2.avd/userdata.img /root/.android/avd/Pixel2.avd/userdata.qcow2 && \
|
||||||
# mv /root/.android/avd/x86.avd/userdata.qcow2 /root/.android/avd/x86.avd/userdata.img && \
|
# 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/vendor.img /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.qcow2 && \
|
# (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/vendor.qcow2 /opt/android-sdk-linux/system-images/{{ platform }}/google_apis/x86/vendor.img || true)
|
# 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 adb
|
||||||
EXPOSE 5037 5554 5555 5900
|
EXPOSE 5037 5554 5555 5900
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
avd.ini.encoding=UTF-8
|
avd.ini.encoding=UTF-8
|
||||||
AvdId=x86
|
AvdId=Pixel2
|
||||||
PlayStore.enabled=true
|
PlayStore.enabled=true
|
||||||
abi.type=x86
|
abi.type=x86_64
|
||||||
avd.ini.displayname=x86
|
avd.ini.displayname=Pixel2
|
||||||
disk.dataPartition.size=2048M
|
disk.dataPartition.size=2048M
|
||||||
hw.accelerometer=yes
|
hw.accelerometer=yes
|
||||||
hw.audioInput=no
|
hw.audioInput=no
|
||||||
hw.battery=yes
|
hw.battery=yes
|
||||||
hw.camera.back=none
|
hw.camera.back=none
|
||||||
hw.camera.front=none
|
hw.camera.front=none
|
||||||
hw.cpu.arch=x86
|
hw.cpu.arch=x86_64
|
||||||
hw.cpu.ncore=2
|
hw.cpu.ncore=2
|
||||||
hw.dPad=no
|
hw.dPad=no
|
||||||
hw.device.hash2=MD5:1be89bc42ec9644d4b77968b23474980
|
hw.device.hash2=MD5:1be89bc42ec9644d4b77968b23474980
|
||||||
@@ -26,7 +26,7 @@ hw.ramSize=1536
|
|||||||
hw.sensors.orientation=yes
|
hw.sensors.orientation=yes
|
||||||
hw.sensors.proximity=yes
|
hw.sensors.proximity=yes
|
||||||
hw.trackBall=no
|
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.latency=none
|
||||||
runtime.network.speed=full
|
runtime.network.speed=full
|
||||||
showDeviceFrame=no
|
showDeviceFrame=no
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Xvfb :1 +extension GLX +extension RANDR +extension RENDER +extension XFIXES -scr
|
|||||||
XVFB_PID=$!
|
XVFB_PID=$!
|
||||||
|
|
||||||
cd /opt/android-sdk-linux/emulator
|
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=$!
|
EMULATOR_PID=$!
|
||||||
|
|
||||||
adb wait-for-device
|
adb wait-for-device
|
||||||
@@ -45,8 +45,8 @@ save
|
|||||||
adb emu kill
|
adb emu kill
|
||||||
|
|
||||||
# Doesn't work: triggers cold boot
|
# 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
|
# 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/x86.avd/userdata-qemu.img_qcow2 /root/.android/avd/x86.avd/userdata-qemu.img
|
# 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
|
# 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
|
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
|
# qemu references bios by relative path
|
||||||
cd /opt/android-sdk-linux/emulator
|
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
|
CONFIGTMP=${CONFIG}.tmp
|
||||||
|
|
||||||
if [ -n "$ANDROID_CONFIG" ];
|
if [ -n "$ANDROID_CONFIG" ];
|
||||||
@@ -69,4 +69,4 @@ fi
|
|||||||
|
|
||||||
echo "emulator_opts: $emulator_opts"
|
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 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.sh emulator:/snapshot.sh
|
||||||
docker cp snapshot.expect emulator:/snapshot.expect
|
docker cp snapshot.expect emulator:/snapshot.expect
|
||||||
|
|||||||
Reference in New Issue
Block a user