From 9576f2677b7e67584ccde035f6c8ae507adc245f Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 09:04:40 +0800 Subject: [PATCH 01/12] Explore the docker Android Emulator --- agent/Dockerfile | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index ec33709fc..badb4fc67 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -8,7 +8,8 @@ ARG JAR_FILE=build/libs/agent.jar ENV TZ="Asia/Shanghai" \ TIME_ZONE="Asia/Shanghai" \ ANDROID_HOME=/opt/android-sdk-linux -ENV PATH $PATH:${ANDROID_HOME}/tools:$ANDROID_HOME/platform-tools + ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV PATH $PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/emulator:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin RUN \ ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && \ @@ -23,6 +24,24 @@ RUN \ wget -qO- "http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz" | tar -zx -C /opt && \ echo y | android update sdk --no-ui --all --filter platform-tools --force +# set up environment for emulator, a example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef +RUN \ + apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ + # Accepted values are: [add-on, doc, extra, platform, platform-tool, sample, source, system-image, tool] + android update sdk --no-ui --all --force --filter tool && \ + # https://developer.android.com/studio#command-tools + # https://developer.android.google.cn/studio/command-line#tools-sdk + wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \ + unzip commandlinetools-linux-9477386_latest.zip -d /opt/android-sdk-linux && \ + echo "y" | sdkmanager --install "platforms;android-24" "emulator" && \ + echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" && \ + echo "y" | sdkmanager --licenses && \ + # https://developer.android.com/studio/command-line/avdmanager + echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-24" -d "Nexus 5X" -f && \ + # echo y | sdkmanager "system-images;android-24;default;armeabi-v7a" --sdk_root=/opt/android-sdk-linux && \ + # The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths. + emulator -avd emuTestNexus -noaudio -no-boot-anim -gpu off -no-window + # TODO: after we enable the smart test in Github, we will reactivate the following layers. # Install python/pip and smart test dependencies # This file should be in position if we have run the bootJar task with Gradle. From c1ff400b531cb747981e3ce4e48e7e025d7f9aef Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 09:13:31 +0800 Subject: [PATCH 02/12] Explore the docker Android Emulator --- agent/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index badb4fc67..2e6e4bae0 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -7,7 +7,7 @@ ARG JAR_FILE=build/libs/agent.jar ENV TZ="Asia/Shanghai" \ TIME_ZONE="Asia/Shanghai" \ - ANDROID_HOME=/opt/android-sdk-linux + ANDROID_HOME=/opt/android-sdk-linux \ ANDROID_SDK_ROOT=/opt/android-sdk-linux ENV PATH $PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/emulator:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin @@ -25,6 +25,7 @@ RUN \ echo y | android update sdk --no-ui --all --filter platform-tools --force # set up environment for emulator, a example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef +# We attempt to start an Android emulator in the docker container so that when the agent is started, we will have a initial Android emulator phone available. RUN \ apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ # Accepted values are: [add-on, doc, extra, platform, platform-tool, sample, source, system-image, tool] From 4d1f5772bb8dd13d2261d01ef9a6eccbdb4e437b Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 09:17:54 +0800 Subject: [PATCH 03/12] Explore the docker Android Emulator --- agent/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index 2e6e4bae0..824d17fae 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -9,7 +9,7 @@ ENV TZ="Asia/Shanghai" \ TIME_ZONE="Asia/Shanghai" \ ANDROID_HOME=/opt/android-sdk-linux \ ANDROID_SDK_ROOT=/opt/android-sdk-linux -ENV PATH $PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/emulator:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin +ENV PATH $PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/emulator:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin RUN \ ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && \ @@ -34,6 +34,8 @@ RUN \ # https://developer.android.google.cn/studio/command-line#tools-sdk wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \ unzip commandlinetools-linux-9477386_latest.zip -d /opt/android-sdk-linux && \ + # Either specify it explicitly with --sdk_root= or move this package into its expected location: /cmdline-tools/latest/ + mv /opt/android-sdk-linux/cmdline-tools /opt/android-sdk-linux/cmdline-tools/latest && \ echo "y" | sdkmanager --install "platforms;android-24" "emulator" && \ echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" && \ echo "y" | sdkmanager --licenses && \ From 9f8f2373fe6b46e9bd080662fcea93a777972326 Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 09:34:18 +0800 Subject: [PATCH 04/12] Update the layers --- agent/Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index 824d17fae..c14ef60ab 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -20,23 +20,23 @@ RUN \ apt-get install -y python3.8 && \ apt-get install -y python3-pip && \ mkdir -m 0750 /.android && \ - mkdir /hydra && \ - wget -qO- "http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz" | tar -zx -C /opt && \ - echo y | android update sdk --no-ui --all --filter platform-tools --force + mkdir /hydra # set up environment for emulator, a example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef # We attempt to start an Android emulator in the docker container so that when the agent is started, we will have a initial Android emulator phone available. RUN \ apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ # Accepted values are: [add-on, doc, extra, platform, platform-tool, sample, source, system-image, tool] - android update sdk --no-ui --all --force --filter tool && \ + mkdir -p /opt/android-sdk-linux/cmdline-tools/latest && \ # https://developer.android.com/studio#command-tools - # https://developer.android.google.cn/studio/command-line#tools-sdk + # https://developer.android.google.cn/studio/command-line#tools-sdk \ wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \ - unzip commandlinetools-linux-9477386_latest.zip -d /opt/android-sdk-linux && \ + unzip commandlinetools-linux-9477386_latest.zip && \ # Either specify it explicitly with --sdk_root= or move this package into its expected location: /cmdline-tools/latest/ - mv /opt/android-sdk-linux/cmdline-tools /opt/android-sdk-linux/cmdline-tools/latest && \ - echo "y" | sdkmanager --install "platforms;android-24" "emulator" && \ + mv cmdline-tools /opt/android-sdk-linux/cmdline-tools/latest + +RUN \ + echo "y" | sdkmanager --install "platform-tools" "platforms;android-24" "emulator" "platforms;android-33" && \ echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" && \ echo "y" | sdkmanager --licenses && \ # https://developer.android.com/studio/command-line/avdmanager From ade17536a63ce52b97da8ba781b053f6073b5a8c Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 09:50:03 +0800 Subject: [PATCH 05/12] Update the layers --- agent/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index c14ef60ab..5322fa4c8 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -27,7 +27,7 @@ RUN \ RUN \ apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ # Accepted values are: [add-on, doc, extra, platform, platform-tool, sample, source, system-image, tool] - mkdir -p /opt/android-sdk-linux/cmdline-tools/latest && \ + mkdir -p /opt/android-sdk-linux/cmdline-tools && \ # https://developer.android.com/studio#command-tools # https://developer.android.google.cn/studio/command-line#tools-sdk \ wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \ @@ -36,6 +36,7 @@ RUN \ mv cmdline-tools /opt/android-sdk-linux/cmdline-tools/latest RUN \ + ls -al /opt/android-sdk-linux/cmdline-tools/latest && \ echo "y" | sdkmanager --install "platform-tools" "platforms;android-24" "emulator" "platforms;android-33" && \ echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" && \ echo "y" | sdkmanager --licenses && \ From 3de0fae29e12eb83b50554c37452815ad849465f Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 09:54:29 +0800 Subject: [PATCH 06/12] Update the layers --- agent/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index 5322fa4c8..4b44b7e14 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -39,9 +39,9 @@ RUN \ ls -al /opt/android-sdk-linux/cmdline-tools/latest && \ echo "y" | sdkmanager --install "platform-tools" "platforms;android-24" "emulator" "platforms;android-33" && \ echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" && \ - echo "y" | sdkmanager --licenses && \ + # echo "y" | sdkmanager --licenses && \ # https://developer.android.com/studio/command-line/avdmanager - echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-24" -d "Nexus 5X" -f && \ + echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-24;default;armeabi-v7a" -d "Nexus 5X" -f && \ # echo y | sdkmanager "system-images;android-24;default;armeabi-v7a" --sdk_root=/opt/android-sdk-linux && \ # The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths. emulator -avd emuTestNexus -noaudio -no-boot-anim -gpu off -no-window From e186caadcc80a3c5ccc106e2fb0cf7ad4fa1b56a Mon Sep 17 00:00:00 2001 From: BryanSharp <8344245+hydraxman@users.noreply.github.com> Date: Wed, 22 Mar 2023 10:04:20 +0800 Subject: [PATCH 07/12] update to 30 --- agent/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index 4b44b7e14..a3589300b 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -37,11 +37,11 @@ RUN \ RUN \ ls -al /opt/android-sdk-linux/cmdline-tools/latest && \ - echo "y" | sdkmanager --install "platform-tools" "platforms;android-24" "emulator" "platforms;android-33" && \ - echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" && \ + echo "y" | sdkmanager --install "platform-tools" "platforms;android-24" "emulator" "platforms;android-33" "platforms;android-30" && \ + echo "y" | sdkmanager --install "system-images;android-30;default;armeabi-v7a" && \ # echo "y" | sdkmanager --licenses && \ # https://developer.android.com/studio/command-line/avdmanager - echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-24;default;armeabi-v7a" -d "Nexus 5X" -f && \ + echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-30;default;armeabi-v7a" -d "Pixel 5" -f && \ # echo y | sdkmanager "system-images;android-24;default;armeabi-v7a" --sdk_root=/opt/android-sdk-linux && \ # The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths. emulator -avd emuTestNexus -noaudio -no-boot-anim -gpu off -no-window From 45dbc918d309d91432f65e626850519a5eeca615 Mon Sep 17 00:00:00 2001 From: Li Shen Date: Wed, 22 Mar 2023 14:41:25 +0800 Subject: [PATCH 08/12] Update dockerfile of agent Add start.sh for agent startup; --- agent/Dockerfile | 21 ++++++++++++++------- agent/start.sh | 6 ++++++ 2 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 agent/start.sh diff --git a/agent/Dockerfile b/agent/Dockerfile index a3589300b..d2c51f1cc 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -4,6 +4,10 @@ # in project root DIR to generate the JAR_FILE (agent/build/libs/agent.jar). FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu ARG JAR_FILE=build/libs/agent.jar +ARG START_SCRIPT=start.sh +ARG ARG_AGENT_ID +ARG ARG_AGENT_SECRET +ARG ARG_AGENT_NAME ENV TZ="Asia/Shanghai" \ TIME_ZONE="Asia/Shanghai" \ @@ -22,7 +26,7 @@ RUN \ mkdir -m 0750 /.android && \ mkdir /hydra -# set up environment for emulator, a example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef +# set up environment for emulator, an example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef # We attempt to start an Android emulator in the docker container so that when the agent is started, we will have a initial Android emulator phone available. RUN \ apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ @@ -37,14 +41,16 @@ RUN \ RUN \ ls -al /opt/android-sdk-linux/cmdline-tools/latest && \ - echo "y" | sdkmanager --install "platform-tools" "platforms;android-24" "emulator" "platforms;android-33" "platforms;android-30" && \ - echo "y" | sdkmanager --install "system-images;android-30;default;armeabi-v7a" && \ + echo "y" | sdkmanager --install "platform-tools" "emulator" "platforms;android-27" "platforms;android-30" "platforms;android-33" && \ + # Use "sdkmanager --list" to fetch available sdk id list, when command want to install a newer android sdk. + echo "y" | sdkmanager --install "system-images;android-27;default;arm64-v8a" + +RUN \ # echo "y" | sdkmanager --licenses && \ # https://developer.android.com/studio/command-line/avdmanager - echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-30;default;armeabi-v7a" -d "Pixel 5" -f && \ + # Use "avdmanager list device" to fetch available device list value used in parameter "-d". + echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-27;default;arm64-v8a" -d "pixel_5" -f # echo y | sdkmanager "system-images;android-24;default;armeabi-v7a" --sdk_root=/opt/android-sdk-linux && \ - # The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths. - emulator -avd emuTestNexus -noaudio -no-boot-anim -gpu off -no-window # TODO: after we enable the smart test in Github, we will reactivate the following layers. # Install python/pip and smart test dependencies @@ -54,8 +60,9 @@ RUN \ # RUN pip3 install -r /requirements.txt COPY ${JAR_FILE} /app.jar +COPY ${START_SCRIPT} /start.sh # Official doc about connecting package with repo: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#labelling-container-images LABEL org.opencontainers.image.source=https://github.com/microsoft/HydraLab -ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=docker"] \ No newline at end of file +ENTRYPOINT ["sh", "start.sh"] \ No newline at end of file diff --git a/agent/start.sh b/agent/start.sh new file mode 100644 index 000000000..52dc5eadd --- /dev/null +++ b/agent/start.sh @@ -0,0 +1,6 @@ +adb start-server +# start emulator +# The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths. +nohup emulator -avd emuTestNexus -noaudio -no-boot-anim -gpu off -no-window -qemu -machine virt & + +java -jar /app.jar --spring.profiles.active=docker \ No newline at end of file From 6f3533aecad5552f20a46577628a6727e8c697e0 Mon Sep 17 00:00:00 2001 From: Li Shen Date: Wed, 22 Mar 2023 17:18:14 +0800 Subject: [PATCH 09/12] Update dockerfile to enable emulator --- agent/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index d2c51f1cc..e36bdddb4 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -11,6 +11,9 @@ ARG ARG_AGENT_NAME ENV TZ="Asia/Shanghai" \ TIME_ZONE="Asia/Shanghai" \ + AGENT_ID=${ARG_AGENT_ID} \ + AGENT_SECRET=${ARG_AGENT_SECRET} \ + AGENT_NAME=${ARG_AGENT_NAME} \ ANDROID_HOME=/opt/android-sdk-linux \ ANDROID_SDK_ROOT=/opt/android-sdk-linux ENV PATH $PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/emulator:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin @@ -29,7 +32,7 @@ RUN \ # set up environment for emulator, an example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef # We attempt to start an Android emulator in the docker container so that when the agent is started, we will have a initial Android emulator phone available. RUN \ - apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ + apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 libfontconfig libglu1 libxcomposite1 libxcursor1 libpulse0 libasound2 && \ # Accepted values are: [add-on, doc, extra, platform, platform-tool, sample, source, system-image, tool] mkdir -p /opt/android-sdk-linux/cmdline-tools && \ # https://developer.android.com/studio#command-tools From 5e135b123f6a3af7e2b157f2c3a86f2a923b5233 Mon Sep 17 00:00:00 2001 From: Li Shen Date: Wed, 22 Mar 2023 17:20:26 +0800 Subject: [PATCH 10/12] Remove redundant env variables --- agent/Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index e36bdddb4..c862b94e6 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -5,15 +5,9 @@ FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu ARG JAR_FILE=build/libs/agent.jar ARG START_SCRIPT=start.sh -ARG ARG_AGENT_ID -ARG ARG_AGENT_SECRET -ARG ARG_AGENT_NAME ENV TZ="Asia/Shanghai" \ TIME_ZONE="Asia/Shanghai" \ - AGENT_ID=${ARG_AGENT_ID} \ - AGENT_SECRET=${ARG_AGENT_SECRET} \ - AGENT_NAME=${ARG_AGENT_NAME} \ ANDROID_HOME=/opt/android-sdk-linux \ ANDROID_SDK_ROOT=/opt/android-sdk-linux ENV PATH $PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/emulator:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin From 3cd07ea5df4f5fda50273d75321d17611d395536 Mon Sep 17 00:00:00 2001 From: Li Shen Date: Mon, 27 Mar 2023 18:08:55 +0800 Subject: [PATCH 11/12] Update with latest investigation result --- agent/Dockerfile | 16 +++++++++++----- agent/start.sh | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/agent/Dockerfile b/agent/Dockerfile index c862b94e6..9cc80ad69 100644 --- a/agent/Dockerfile +++ b/agent/Dockerfile @@ -26,7 +26,8 @@ RUN \ # set up environment for emulator, an example ref: https://andresand.medium.com/android-emulator-on-docker-container-f20c49b129ef # We attempt to start an Android emulator in the docker container so that when the agent is started, we will have a initial Android emulator phone available. RUN \ - apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 libfontconfig libglu1 libxcomposite1 libxcursor1 libpulse0 libasound2 && \ + apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 && \ + # apt-get install -y unzip libnss3-dev libxcomposite-dev libxdamage1 libfontconfig libglu1 libxcomposite1 libxcursor1 libpulse0 libasound2 && \ # Accepted values are: [add-on, doc, extra, platform, platform-tool, sample, source, system-image, tool] mkdir -p /opt/android-sdk-linux/cmdline-tools && \ # https://developer.android.com/studio#command-tools @@ -38,15 +39,20 @@ RUN \ RUN \ ls -al /opt/android-sdk-linux/cmdline-tools/latest && \ - echo "y" | sdkmanager --install "platform-tools" "emulator" "platforms;android-27" "platforms;android-30" "platforms;android-33" && \ - # Use "sdkmanager --list" to fetch available sdk id list, when command want to install a newer android sdk. + echo "y" | sdkmanager --install "platform-tools" "emulator" "platforms;android-27" && \ + # Use "sdkmanager --list" to fetch available sdk id list, when command want to install a newer android sdk. \ + # x86_64 needs hardward accelaration support; \ + # arm can run on the android API of maximum 27: https://stackoverflow.com/questions/74760054/panic-avds-cpu-architecture-arm64-is-not-supported-by-the-qemu2-emulator-on; \ + # TODO: Need an ARM PC for local debug, and the sample app should have a ARM version. +# echo "y" | sdkmanager --install "system-images;android-24;default;armeabi-v7a" echo "y" | sdkmanager --install "system-images;android-27;default;arm64-v8a" RUN \ - # echo "y" | sdkmanager --licenses && \ + echo "y" | sdkmanager --licenses && \ # https://developer.android.com/studio/command-line/avdmanager # Use "avdmanager list device" to fetch available device list value used in parameter "-d". - echo "no" | avdmanager create avd -n emuTestNexus -k "system-images;android-27;default;arm64-v8a" -d "pixel_5" -f +# echo "no" | avdmanager create avd -n emuTestPixel -k "system-images;android-24;default;armeabi-v7a" -d "pixel_4_xl" -f + echo "no" | avdmanager create avd -n emuTestPixel -k "system-images;android-27;default;arm64-v8a" -d "pixel_4_xl" -f # echo y | sdkmanager "system-images;android-24;default;armeabi-v7a" --sdk_root=/opt/android-sdk-linux && \ # TODO: after we enable the smart test in Github, we will reactivate the following layers. diff --git a/agent/start.sh b/agent/start.sh index 52dc5eadd..b8a93f096 100644 --- a/agent/start.sh +++ b/agent/start.sh @@ -1,6 +1,6 @@ adb start-server # start emulator # The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths. -nohup emulator -avd emuTestNexus -noaudio -no-boot-anim -gpu off -no-window -qemu -machine virt & +nohup emulator -avd emuTestPixel -noaudio -no-boot-anim -gpu off -no-window -qemu -machine virt & java -jar /app.jar --spring.profiles.active=docker \ No newline at end of file From d1ac019d9139760cfe8c9b99f82d5c643b2d86b7 Mon Sep 17 00:00:00 2001 From: Nathan Bu <370788475@qq.com> Date: Wed, 27 Sep 2023 09:23:10 +0800 Subject: [PATCH 12/12] Update agent/start.sh --- agent/start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/start.sh b/agent/start.sh index b8a93f096..f03156f09 100644 --- a/agent/start.sh +++ b/agent/start.sh @@ -1,3 +1,4 @@ +adb kill-server adb start-server # start emulator # The binary emulator-headless is now retired. Headless builds of the engine are now launched via emulator -no-window, thus unifying the previously separate (but similar) paths.