繁中

docker-android輕量級Docker鏡像

docker-android是一個輕量級且可定製的Docker鏡像,內置Android模擬器、DVR虛擬化和ADB調試工具,可以通過Expresspy遠程控制。通過運行一個簡單的命令來運行它:docker run --設備/dev/kvm -p 5555:5555(註:原始埠號是筆誤,已更正為Android調試的標準埠格式)。
該圖像支持自定義Android版本(例如API 33)、與Google Play Store集成以及外部安裝Android開發套件(SDK),以實現極端輕量級(僅支持138 MB的壓縮包,不集成SDK)。
它的核心優勢是可以在CI/CD管道中進行快速、一致的無頭Android測試,從而節省設置環境的時間和資源成本。

在許多情況下,您不想「本地打開模擬器」,但您想要一個 可以重複、批量和遠程連接:例如,在CI中運行UI測試、在伺服器上提供模擬器實例,或者讓測試機器只需單擊即可設置Android的固定版本。

HQarroum/docker-android 很簡單:
 包 android模擬器 變成一個Docker鏡像, 簡化且可定製 儘可能讓模擬器作為「服務」運行並公開 亞行 通過網絡,外部機器可以直接連接到控制。

最小的依賴性+遠程可控的模擬器圖像

REAUTE的描述強調了兩點:

  1. 大小優化:僅安裝「遠程運行和控制」所需的最少組件。
  2. 遠程可控制:該貨櫃配有亞洲開發銀行伺服器,並向外界開放港口。您可以連接到外面的模擬器 adb連接 容器的。

它的構圖也寫得很清楚:圖像中只包含 Android模擬器、ADB伺服器和具有libvirt支持的QEMU (for虛擬化相關功能)。

主要功能一覽

REAUTE列的特徵非常「工程化」,基本上適用於CI/遠程運行模擬器:

  •  基於 高山 、支持 KVM 加速(需要提供主機 /dev/kvm).
  •  內置RET 11.
  • 建造時,您可以選擇 Android API版本/設備類型/圖像類型.
  • 容器網絡接口內置 Emulator和ADB之間的埠轉發 (外部直接連接)。
  • 默認為無頭 界面, 適合CI農場;並且兼容 關於cpy 遠程控制屏幕。
  • 還有一個關鍵行為: 模擬器重新啟動擦除鏡像數據 (more就像一次性測試環境一樣)。

鏡像卷:為什麼它強調「可作物」

REAUTE提供了不同構建變體(解壓縮/壓縮)的容量比較:

  • API 33 +模擬器:5.84 GB / 1.97 GB
  • API 32 +模擬器:5.89 GB / 1.93 GB
  • API 28 +模擬器:4.29 GB / 1.46 GB
  • 無需SDK和模擬器即可構建:414 MB / 138 MB

這解釋了它的設計理念:
您可以將「重型Android SDK」放在外部共享存儲(BNP等)上並僅保留在容器中運行所需的Shell,從而減少構建時間和圖像大小。

啟動遠程連接的模擬器

碼頭編寫開始

REAUTE為作曲提供了一種開始的方式:

Docker組建Android模擬器

如果您想要圖形處理器加速,還有相應的編寫服務名稱示例:

Docker構建android-emulator-cuda
#及帶 playstore 的示例:
docker組建android-emulator-cuda-store

純粹的Docker(Kumover加速)

建立形象:

docker buil-t android-emulator。

運行(將主機KW設備掛鈎到容器中並映射ADB埠):

docker run -it --rm --設備/dev/kvm -p 5555:5555 android-emulator

連接亞洲開發銀行:

adb connect 127.0.0.1:5555

如果你想遠程「看屏幕並操作」,REAUTE直接推薦Increcpy:

可愛的

兩個「真正的需求」

我不想每次重新啟動時都丟失數據

儘管默認重啟將擦除,但REAUTE提供了一種持久AVD的方法:裝載 /數據 貨櫃

docker run -it --rm --設備/dev/kvm -p 5555:5555 
 -v ~/android_avd:/data 
 Android模擬器

測試不同的Android版本/不同的圖像類型

施工時可以通過參數控制:

  • API_LEVEL:Android版本對應的API級別
  • IMG_類型:圖像類型(例如Google API或Play Store)
  • 架構:中央處理器架構(REAUTE提到主要支持x86_64 / x86)

示例(使用API 28 + Play Store,x86):

docker build 
 --build-arg API_SAL =28 
 --build-arg IMG_TYPE=google_apis_playstore 
 --build-arg架構=x86 
 --標籤android-emulator。

Play Store鏡像「亞銀鑰匙」坑

REAUTE特別提醒:如果你跑步 google_apis_playstore 一個形象, 容器內模擬器需要使用與本地adb客戶端相同的adbkeys集.它還給出了構建方法並要求將其放入 ./鍵 目錄覆蓋。([GitHub][1])


adb keygen adbkey
生成 adbkey /adbkey.pub,然後放進去./鍵

更多CI導向配置項目

REAUTE公開一些運行參數(例如,是否禁用動畫、內存、中央處理器核數、是否跳過DAB驗證等),典型的用途是使CI更穩定/更快。
例如,它列出了:

  • 殘疾_動畫
  • 跳過_授權
  • 存儲器

直接拉取Docker Hub預構建鏡像

如果您不想在本地構建,REAUTE提到Docker Hub具有預構建的鏡像,並通過API級別/鏡像類型進行標記。示例:

docker pull halimqarroum/docker-android:api-33

Github:https://github.com/HQarroum/docker-android
管材:

返回頂端