项目概述
Docker-Android 是一个基于 Docker 的安卓开发环境项目,旨在为开发者在容器中运行安卓模拟器的完整解决方案。该项目支持多种安卓版本和设备配置,能够满足应用开发、测试和自动化测试等不同场景的需求。
核心优势
- 支持多种设备配置和皮肤,包括三星 Galaxy S10、Google Nexus 系列等主流设备
- 提供 VNC 支持,可通过浏览器远程查看容器内运行状态
- 日志共享功能,所有日志均可通过 Web 界面访问
- 支持通过 adb connect 从外部控制模拟器
- 集成云端解决方案,如 Genymotion Cloud
- 可用于构建安卓项目
- 支持多种测试框架,包括 Appium、Espresso 等
环境准备
系统要求
- 已安装 Docker 运行环境
- 系统支持硬件虚拟化
- 建议使用 Ubuntu 系统以获得最佳兼容性
虚拟化检查
在 Linux 系统中,使用以下命令确认虚拟化支持:
sudo apt install cpu-checker
kvm-ok
快速开始
基础部署
运行以下命令启动安卓模拟器容器:
docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0
访问控制界面
容器启动后,在浏览器中访问 http://localhost:6080 即可查看运行中的安卓模拟器。
状态监控
使用以下命令检查模拟器运行状态:
docker exec -it android-container cat device_status
数据持久化配置
默认情况下,容器重启会销毁模拟设备数据。如需持久化数据,需挂载数据卷到 /home/androidusr 目录:
docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0
使用场景详解
Appium 自动化测试
在容器中运行 Appium Server,支持移动网站和移动应用的自动化测试:
docker run -d -p 6080:6080 -p 4723:4723 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true -e APPIUM=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0
安卓项目构建
Docker-Android 可用于构建安卓项目并执行单元测试。以下示例展示如何构建安卓项目:
docker run -it --rm -v $PWD/testing-samples:/home/androidusr/tmp -w /home/androidusr/tmp --entrypoint "/bin/bash" budtmo/docker-android:emulator_11.0 -c "./gradlew build"
主机控制模拟器
从主机机器控制容器内的模拟器:
- 运行容器时开放端口 5554 和 5555
- 使用 adb 连接模拟器:
adb connect <docker-machine-ip-address>:5555
支持的安卓版本
| Android 版本 | API 等级 | 镜像标签 |
|---|---|---|
| 9.0 | 28 | budtmo/docker-android:emulator_9.0 |
| 10.0 | 29 | budtmo/docker-android:emulator_10.0 |
| 11.0 | 30 | budtmo/docker-android:emulator_11.0 |
| 12.0 | 32 | budtmo/docker-android:emulator_12.0 |
| 13.0 | 33 | budtmo/docker-android:emulator_13.0 |
| 14.0 | 34 | budtmo/docker-android:emulator_14.0 |
设备配置支持
手机设备
- 三星 Galaxy S10
- 三星 Galaxy S9
- 三星 Galaxy S8
- 三星 Galaxy S7 Edge
- 三星 Galaxy S7
- 三星 Galaxy S6
- Nexus 4
- Nexus 5
- Nexus One
- Nexus S
平板设备
- Nexus 7
- Pixel C
高级功能
Genymotion 集成
Docker-Android 与 Genymotion 在不同云服务上集成,包括 Genymotion SAAS、AWS、GCP、阿里云等。
模拟器皮肤
模拟器皮肤来源于 Android Studio IDE 和三星开发者网站,提供真实的设备外观体验。
项目获取
如需获取项目源码,可执行以下命令:
git clone https://gitcode.com/GitHub_Trending/do/docker-android
通过以上指南,您可以快速搭建容器化的安卓开发环境,为移动应用开发和测试提供便利。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





