news 2026/9/11 6:32:55

如何用Docker跑Android模拟器:docker-android实战(含3个关键启动参数)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用Docker跑Android模拟器:docker-android实战(含3个关键启动参数)

如何用Docker跑Android模拟器:docker-android实战(含3个关键启动参数)

【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android

CI服务器上一台台手工装Android SDK、折腾虚拟化配置、模拟器坏掉重来的日子,你受够了吗?docker-android 把整套Android模拟器打成了一个现成的Docker镜像:一条命令起一台可用设备,自带Web VNC看屏幕,Appium和宿主机ADB都能直接连。读完这篇,你能在自己的机器上把容器化的Android测试环境跑起来,并跑通一轮UI自动化。

快速上手:一条命令启动Android 11模拟器容器 🐳

这一节解决"最小代价跑起来"的问题。先确认两个前提:宿主机装了Docker,CPU开启了硬件虚拟化(KVM)。可以用kvm-ok命令检查。注意:镜像只能在Ubuntu环境下运行,macOS或Windows用户需要先开一台带虚拟化的Ubuntu虚拟机。

启动的核心就是下面这条命令:EMULATOR_DEVICE决定机型,WEB_VNC开启网页观看,6080是页面端口:

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可查启动状态。

镜像标签从emulator_9.0emulator_14.0,想测Android 14就换用emulator_14.0。官方用户统计里Android 11的占比最高(约67.7%),新项目选它不会错。

图1:docker-android官方用户行为统计,Android 11是使用占比最高的版本

机型上,EMULATOR_DEVICE可以传三星Galaxy S6/S7/S10、Nexus 4/7等名字,对应的profile配置放在设备配置目录,镜像里自带的S10皮肤长这样:

图2:docker-android内置的三星Galaxy S10设备皮肤,通过EMULATOR_DEVICE参数选用

验证点:浏览器6080页面能看到S10开机画面,device_status显示设备在运行。

用Web VNC看模拟器画面并发短信

这一节回答:容器里的模拟器怎么"看"、怎么"操作"。WEB_VNC=true后容器在6080端口暴露noVNC,浏览器直接看,不用装客户端;只想旁观不操作就在URL后加?view_only=true,要加密码就配VNC_PASSWORD变量,细节见自定义配置文档。

短信验证是常见测试场景,可以直接在命令行给模拟器发一条:

docker exec -it android-container adb emu sms send 12345678 "hello bud1"

发送后消息会出现在模拟器的Messages应用里,6080页面上直接可见。

图3:docker-android的Web VNC界面,宿主通过adb发来的短信测试已送达三星Galaxy S6

验证点:网页上能看到新收到的短信。

接入Appium,在容器上跑UI自动化测试 ⚙️

这一节解决UI自动化问题。docker-android可以在容器内直接起Appium服务器:启动时额外映射端口4723并加环境变量APPIUM=true,之后用本地Appium客户端通过http://localhost:4723/wd/hub驱动容器里的模拟器即可。需要给Appium服务器传参就用APPIUM_ADDITIONAL_ARGS;Appium 2.x还能直接挂进Selenium Grid 4.x,容器本身不用做任何修改。

验证点:浏览器打开4723能看到Appium状态页,测试脚本正常创建session。

进阶:数据持久化、宿主机ADB接入与Jenkins集成

默认情况下,容器重启会销毁模拟设备。想保留已装应用和数据,启动时把卷挂到/home/androidusr即可(docker run -v data:/home/androidusr ...)。

想让宿主机ADB直接操作容器而不是走docker exec,映射端口55545555,然后在宿主机执行adb connect <容器IP>:5555

CI场景可以参考Jenkins用例文档把模拟器接进流水线;不想自己维护机器或需要更多机型时,项目还集成了Genymotion Cloud,详见THIRD_PARTY_GENYMOTION.md。

避坑FAQ 💡

  • 模拟器起不来、报KVM相关错误:先跑kvm-ok确认虚拟化开启,镜像依赖宿主机的/dev/kvm(即命令里的--device /dev/kvm)。
  • macOS/Windows上跑不了:镜像只能在Ubuntu里运行,请先开Ubuntu虚拟机再跑Docker。
  • 重启容器后装的应用没了:没挂/home/androidusr数据卷属于正常行为,补上-v参数。
  • 端口号记混6080是Web VNC页面,4723是Appium,5555是ADB。

docker-android 把"模拟器+虚拟化环境+测试依赖"压缩成一条命令能拉起的镜像,特别适合需要稳定、可复现Android测试环境的CI机器。跑通本文流程后,下一步可以把Appium用例接进Jenkins,多开几个不同Android版本的容器做并行验证。

【免费下载链接】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 6:32:06

AI Agent实战入门:Python+LangGraph+CrewAI+AutoGen七日通关指南

1. 这不是“学AI”的路线图&#xff0c;而是你亲手造出第一个能干活的AI Agent的实操日志 我带过37个从零开始学AI Agent开发的学员&#xff0c;其中21个在6个月内独立交付了真实业务场景中的Agent系统——有给律所做合同条款比对的&#xff0c;有帮跨境电商做多平台库存同步的…

作者头像 李华
网站建设 2026/9/11 6:30:47

PairDrop实战:基于WebRTC的跨设备点对点文件传输方案解析

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

作者头像 李华
网站建设 2026/9/11 6:30:11

数据库全量迁移与一致性校验实战:从mydumper到增量同步

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

作者头像 李华
网站建设 2026/9/11 6:28:46

WorkBuddy开放平台个人开发者实战:从零构建Agent应用

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

作者头像 李华
网站建设 2026/9/11 6:28:35

MATLAB控制系统建模与MAD流程实战指南

1. 控制系统建模仿真入门&#xff1a;MAD流程与MATLAB基础 控制系统设计就像搭积木&#xff0c;MAD&#xff08;Modeling-Analysis-Design&#xff09;流程就是我们的搭建手册。这个方法论把复杂的设计过程分解为三个可操作的阶段&#xff1a;先建立数学模型&#xff08;Modeli…

作者头像 李华