news 2026/9/11 15:23:33

Docker 运行 Android 模拟器从零到可用:Docker-Android 配置全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 运行 Android 模拟器从零到可用:Docker-Android 配置全流程

Docker 运行 Android 模拟器从零到可用:Docker-Android 配置全流程

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

想在 Docker 里跑一个 Android 模拟器,并直接在浏览器里操作它?这篇文章带你把 Docker-Android 的完整链路走一遍:环境准备、容器启动、noVNC 界面验证、数据持久化,四步走完即可用。

为什么用 Docker 做 Android 容器化测试

直接在宿主机装模拟器,环境搭建重、多人机器之间还容易不一致。容器化之后:系统被冻结在镜像里,一条命令启、一条命令停;设备画面通过 noVNC(一个跑在浏览器里的 VNC 客户端)暴露出来,不需要再装额外软件;配合 Appium,还能直接当 Android 容器化测试的执行目标。一句话:可复现、可携带、用完即弃。

⚙️ Docker Android 安装准备:环境检查清单

动手前,先确认三件事:

  • Docker 已装好:执行docker -v能看到版本号;没装的话,先按官方文档安装。
  • /dev/kvm可用:KVM 是 Linux 的硬件虚拟化接口,模拟器性能不靠它纯 CPU 模拟就会很慢。Linux 上可安装cpu-checker,然后执行kvm-ok验证。
  • 平台差异处理:不同系统的前置要求见下表。
平台前置要求
Linux确认/dev/kvm存在且当前用户可读
Windows / macOS需要一个支持虚拟化的虚拟机作为载体
Windows 11(可选)可开启 WSL2 硬件加速,配置参考微软 WSL2 文档

🐳 一键启动 Docker-Android 容器

检查通过后,直接复制下面这条命令(以 Android 11 + Galaxy S10 为例):

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

参数逐条说明:

  • -d:后台运行,终端不会被模拟器日志占住;
  • -p 6080:6080:把容器的 noVNC 端口 6080 映射到宿主机,这就是后面浏览器的入口;
  • -e EMULATOR_DEVICE="Samsung Galaxy S10":指定要模拟的设备型号;
  • -e WEB_VNC=true:打开可被网页访问的 VNC 画面;
  • --device /dev/kvm:把硬件虚拟化传进容器,性能全靠它;
  • --name android-container:给容器起名,方便后面执行命令和排查;
  • budtmo/docker-android:emulator_11.0:镜像标签,emulator_11.0表示 Android 11 系统。

✅ 验证 noVNC 访问模拟器与进阶配置

浏览器打开画面

访问http://localhost:6080,等启动动画结束,能看到桌面就说明模拟器已经在线。

检查模拟器状态

想在脚本里轮询状态,可以读容器内的状态文件:

docker exec -it android-container cat device_status

重启后数据保留

默认情况下,容器里装好的应用随重建而消失。加一个命名卷把用户数据固定下来:

docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0

这样/home/androidusr会落在data卷里,系统状态和已安装应用都能跨容器重建保留。

开始之前的小提示

  • 画面明显卡顿,优先怀疑 KVM 没生效,重跑kvm-ok确认;
  • 想并行开多台设备测试,改一下--name和端口,多起几个容器即可;
  • 模拟器启动逻辑可参考 cli/src/device/emulator.py,录像、第三方 Genymotion 等高级玩法见 documentations/ 目录。

【免费下载链接】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 15:23:23

蓝牙模块选型三证据:射频一致性、功耗预算与量产测试

/* 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 15:21:05

Python开源项目贡献指南:从PR提交到核心维护

1. 开源贡献入门:为什么选择Python项目?第一次给开源项目提交PR时,我的手都在抖。那是个周末的深夜,我反复检查了七遍代码才敢点下提交按钮——结果第二天醒来发现项目维护者不仅合并了我的代码,还贴心地帮我修正了拼写…

作者头像 李华
网站建设 2026/9/11 15:17:31

VS Code AI Chat接入本地Ollama:从配置到实战全指南

/* 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 15:15:03

瑞数加密逆向实战:Cookie生成链路与绕过方案

/* 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 15:14:55

银河麒麟V10服务器OpenSSH编译升级到9.8p1完整指南

/* 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 15:14:52

ZLUDA 完整指南:在 AMD 显卡上运行 CUDA 应用

ZLUDA 完整指南:在 AMD 显卡上运行 CUDA 应用 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA ZLUDA 是一个 CUDA 兼容层,让你不改一行代码就能在 AMD 显卡上运行未修改的 CUDA 程序&am…

作者头像 李华