news 2026/9/11 3:09:44

一条命令跑起 Android 模拟器:Docker-Android 完整使用教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一条命令跑起 Android 模拟器:Docker-Android 完整使用教程

一条命令跑起 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.0emulator_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 和登录状态都还在。

踩坑提醒:这两个问题最常遇到

  1. 漏掉--device /dev/kvm:没有加速设备,模拟器要么慢得没法用,要么直接起不来。容器卡在启动日志不动时,先检查这条参数。
  2. 宿主机 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 3:06:11

PSO-RF粒子群优化随机森林时间序列预测与MATLAB实现

上个月做风速预测项目&#xff0c;我拿随机森林单独跑&#xff0c;验证集RMSE一直卡在2.1左右&#xff0c;不论怎么微调都觉得不顺手。后来换成粒子群优化随机森林&#xff08;PSO-RF&#xff09;自动搜超参数&#xff0c;验证集RMSE直接降到1.7&#xff0c;测试集也跟着掉了十…

作者头像 李华
网站建设 2026/9/11 3:00:09

TradingAgents-CN 仪表台市场快讯显示为空的排查与修复实战指南

TradingAgents-CN 仪表台市场快讯显示为空的排查与修复实战指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 本指南完整还原了 TradingAgents-…

作者头像 李华
网站建设 2026/9/11 2:55:12

YOLOv8棉花识别实战:结构解析、训练调参与C++部署

简介&#xff1a;面向目标检测学习者的YOLOv8棉花识别项目代码包&#xff0c;聚焦农业场景下的棉花检测&#xff0c;适合具备一定深度学习基础并希望快速上手YOLOv8训练与部署的开发者。包内共475个文件&#xff0c;压缩包大小约35.44MB&#xff0c;主要包含130个Python训练脚本…

作者头像 李华
网站建设 2026/9/11 2:55:08

ArduPilot 抗干扰布线指南:让信号干扰不再困扰你的飞控

ArduPilot 抗干扰布线指南&#xff1a;让信号干扰不再困扰你的飞控 【免费下载链接】ardupilot ArduPlane, ArduCopter, ArduRover, ArduSub source 项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot 上周一次试飞&#xff0c;飞控刚离地十秒&#xff0c;航…

作者头像 李华
网站建设 2026/9/11 2:55:04

零售数据分析:识别未交易顾客的技术方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华