一条命令跑起 Android 模拟器:Docker-Android 完整使用教程
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
想在服务器或 CI 机器上跑 Android 模拟器,又不想折腾 Android Studio 的安装?Docker-Android 就是一个现成方案:它把 Android 模拟器做成了开箱即用的 Docker 镜像,一条命令启动,浏览器里直接看屏幕。
移动端测试与 CI 场景:Docker-Android 能帮你干什么
如果你正在做下面这些事,可以留意一下:
- 在 Linux 服务器上跑 Appium 之类的 UI 自动化测试
- 在 CI 流水线里编译、验证 APK
- 模拟短信(SMS)完成登录验证场景
- 不想维护真机,又想有一套虚拟手机随时可用
它的思路其实很直白:把 Android 模拟器装进一个 Docker 容器——你可以把它理解成"即插即用的标准间",拉起来就能住——再内置一个 noVNC 网页端,让你随时"探头"进容器里看屏幕。项目本身不复杂:docker/ 目录放着各版本 Android 镜像的构建文件,documentations/ 目录则收录了 Appium、Jenkins、短信模拟、云部署等现成场景文档。
三步启动:把模拟器跑起来
步骤 1:确认机器支持虚拟加速
模拟器要靠宿主机上的 KVM 硬件加速才能跑得动。如果是 Ubuntu,先装个小工具自检:
sudo apt install cpu-checker && kvm-ok
输出 KVM 可用即可继续;macOS 和 Windows 用户需要先准备一台带虚拟化的 Ubuntu 虚拟机,因为这个镜像只在 Ubuntu 环境里运行。
步骤 2:一条 docker run 启动容器
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这条命令一次做了三件事:用-e EMULATOR_DEVICE指定三星 Galaxy S10 当机型,用-e WEB_VNC=true打开网页屏幕,再用--device /dev/kvm把宿主的虚拟加速设备"接"进容器。至于-p 6080:6080这种端口映射,你可以理解成"把容器里的屏幕投影到浏览器"——6080 就是 noVNC 网页端的默认端口。
步骤 3:打开浏览器看屏幕
直接访问http://localhost:6080,就能看到容器里 Android 系统开机的全过程。想确认模拟器状态,敲一句docker exec -it android-container cat device_status就行。镜像标签决定 Android 版本,emulator_9.0到emulator_14.0都有,另外还有 genymotion 标签可以对接 Genymotion 云服务。
最常用环境变量:一行表看懂
所有配置都靠启动时加-e传环境变量,不用改容器内任何文件:
| 参数 | 作用一句话 | 典型取值 |
|---|---|---|
| EMULATOR_DEVICE | 选手机机型 | "Samsung Galaxy S10"、"Nexus 5" |
| WEB_VNC | 打开网页屏幕 | true |
| WEB_VNC_PORT | 换网页端口 | 6081 |
| EMULATOR_DATA_PARTITION | 数据分区大小 | 900m(默认 550m) |
| EMULATOR_NO_SKIN | 去掉手机外壳皮肤,启动更快 | true |
| VNC_PASSWORD | 给屏幕加密码 | 任意字符串 |
还有个隐藏设定要注意:默认行为是"容器一销毁,虚拟手机连同数据一起归零"。想保留数据,启动时挂一个数据卷即可,比如docker run -v data:/home/androidusr ...,下次重启容器,装的 App 和登录状态都还在。
踩坑提醒:这两个问题最常遇到
- 漏掉
--device /dev/kvm:没有加速设备,模拟器要么慢得没法用,要么直接起不来。容器卡在启动日志不动时,先检查这条参数。 - 宿主机 adb 连不上容器:想在容器外用自己的 adb 控制模拟器,需要把 5554/5555 两个端口也映射出来,再执行
adb connect <容器IP>:5555,细节可以参考控制模拟器的场景文档。
代理、语言等更多开关集中在 CUSTOM_CONFIGURATIONS.md 里,按需翻查即可。
这个项目的用户量已经相当可观,说明这套"容器化模拟器"路线是走得通的。建议你先按上面三步把环境跑通,再对照自己的场景翻 documentations/ 里的具体用例,完整的镜像清单和机型列表在 README 里都能查到。
【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考