如何在 Docker 中使用 Android Debug Bridge?
文章目錄
在 Docker container 中以 Android Debug Bridge(ADB)連接真實的 Android 手機除錯。
1. 撰寫 Dockerfile
前往 Android Studio 下載頁面下載「僅限指令列工具」,使用內含的 sdkmanager 下載其他 Android SDK 套件。
必須下載 Android SDK Platform Tools 以使用 adb
命令列工具。
# Use an official Ubuntu as the base image
FROM ubuntu:20.04
# Install necessary tools and dependencies
RUN apt-get update && \
apt-get install -y \
unzip \
wget
# Install JDK 8
RUN apt-get update && apt-get install -y openjdk-8-jdk
# Set up Android SDK
ENV ANDROID_HOME /usr/local/android-sdk
RUN mkdir -p ${ANDROID_HOME}/cmdline-tools && cd ${ANDROID_HOME}/cmdline-tools \
&& wget -q https://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip -O commandlinetools.zip \
&& unzip commandlinetools.zip && rm commandlinetools.zip \
&& mv cmdline-tools tools
ENV PATH ${PATH}:${ANDROID_HOME}/cmdline-tools/tools/bin:${ANDROID_HOME}/platform-tools
# Accept licenses and install required Android SDK packages
RUN yes | sdkmanager --licenses \
&& sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.3"
# Clean up to reduce image size
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# add-host
ENV ANDROID_ADB_SERVER_ADDRESS host.docker.internal
2. 建立 Image 並運行 Container
docker build -t <image> .
docker run --rm -it --add-host=host.docker.internal:host-gateway --name <container> <image>
3. 連接 Android 手機偵錯
- 開啟 Android 手機中的開發者模式。
- 在裝置上找到「版本號碼」。不同型號版本號碼位置可能有所不同,請參考「版本號碼」在裝置設定中的位置。
- 點擊「版本號碼」7次,即可開啟開發人員選項。
- 進入開發人員選項打開 USB 偵錯功能。
- 以 USB 線連接電腦與手機。
- 進入 Container 中的命令列。
docker exec -it <container> /bin/sh
- 以 adb 命令列工具連接手機。
adb devices
- 手機若成功連接,就會顯示在裝置清單中。手機允許電腦偵錯後,
attached
欄位將會變更為device
,此時即可在 Docker container 中以 USB 連接 Android 手機偵錯。
參考資料
- Integrating Docker and the Android Device Bridge (ADB)
- Android Debug Bridge
- Enable Developer options
- How to install Android SDK without android studio installation