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的描述強調了兩點:
- 大小優化:僅安裝「遠程運行和控制」所需的最少組件。
- 遠程可控制:該貨櫃配有亞洲開發銀行伺服器,並向外界開放港口。您可以連接到外面的模擬器
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