ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

如何用一条 Docker 命令跑起 Android 模拟器(Docker-Android 实操)

如何用一条 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 把设备皮肤、系统镜像、VNC 画面、日志服务都打包进现成的 Docker 镜像。你不需要在宿主机安装 Android Studio也不用自己管理模拟器生命周期一条docker run就能得到一个可看、可控、可自动化的容器化 Android 测试环境。谁适合谁不适合Docker-Android 的核心思路是把 Android 模拟器当成一次性资源拉起、跑完构建或 UI 测试、销毁下一个任务拿到干净设备。适合CI 流水线如 Jenkins里每次运行都要一个全新模拟器的场景Appium 自动化测试在容器内快速编译 Android 项目希望测试环境与开发机完全隔离的团队。不适合性能测试——KVMLinux Kernel Virtual Machine内核级硬件虚拟化模拟器的运行速度明显低于真机只适合功能与 UI 测试以及以 Windows/macOS 为宿主机直接跑——镜像只能在 Ubuntu 上运行Win/mac 需经 WSL2 或 Ubuntu 虚拟机。 一条命令启动 Android 容器前置条件有三已安装 Docker宿主机 CPU 支持并开启了 KVM镜像运行在 Ubuntu 内核环境。先确认虚拟化可用sudo apt install cpu-checker kvm-ok通过后用基础命令拉起容器docker run -d -p 6080:6080 -e EMULATOR_DEVICESamsung Galaxy S10 \ -e WEB_VNCtrue --device /dev/kvm --name android-container \ budtmo/docker-android:emulator_11.0镜像标签决定 Android 版本可固定到具体发布版AndroidAPI镜像标签最新可锁定版本9.028budtmo/docker-android:emulator_9.0emulator_9.0_release_version10.029budtmo/docker-android:emulator_10.0emulator_10.0_release_version11.030budtmo/docker-android:emulator_11.0emulator_11.0_release_version12.032budtmo/docker-android:emulator_12.0emulator_12.0_release_version13.033budtmo/docker-android:emulator_13.0emulator_13.0_release_version14.034budtmo/docker-android:emulator_14.0emulator_14.0_release_version内置设备涵盖 Samsung Galaxy S6~S10 系列、Nexus 4/5/7/One/S 与 Pixel C用EMULATOR_DEVICE切换。从项目公开的用量统计看Android 11 镜像约占 67.7%是实际使用最多的标签验证模拟器状态并在浏览器查看画面模拟器首次启动需要几分钟轮询容器内状态文件读到就绪状态即表示拉起完成docker exec -it android-container cat device_status然后在浏览器打开http://localhost:6080。由于启动时指定了WEB_VNCtrue这是一个 noVNC浏览器内 VNCWeb 界面URL 上可追加查询参数实现自动连接、只读或密码保护访问。下图是 Web 控制台里收到短信的模拟画面SMS 模拟用例 文档说明了如何用 adb 向模拟器注入短信适合做验证码与通知类场景测试⚙️ 最常改动的 5 个环境变量变量作用取值示例EMULATOR_DEVICE选择设备型号与皮肤必填Samsung Galaxy S10WEB_VNC开启 noVNC Web 画面默认端口 6080trueVNC_PASSWORD给 VNC 连接加密码保护thisissecretEMULATOR_DATA_PARTITION模拟器数据分区大小默认 550m900mWEB_LOG通过 Web UI 暴露日志文件默认端口 9000true以上是日常最可能改动的几个全部 VNC/Web/日志端口与模拟器启动参数在自定义配置说明中逐项列出。 典型工作流Appium 自动化与 CI 流水线UI 自动化场景在基础命令后追加两个参数即可在容器内启动 Appium Server 并映射端口 4723# 在基础命令后追加 -p 4723:4723 -e APPIUMtrue测试客户端指向http://localhost:4723即可按常规方式跑 Appium 会话Appium UI 测试指南 解答 Server 额外参数APPIUM_ADDITIONAL_ARGS与接入 Selenium Grid 4.x 的问题。CI 流水线的标准动作是新建容器数据默认随容器销毁环境天然干净→ 等待device_status就绪 → 执行测试 → 销毁容器。Jenkins 集成说明 列出了能在构建页面直接弹出容器 VNC 实时预览的插件测试失败时人工复核很方便。让模拟器数据跨重启保留含常见坑默认情况下容器重启会销毁被模拟的设备。若要保留已装应用与数据把卷挂载到/home/androidusrdocker run -d -v data:/home/androidusr \ -e EMULATOR_DEVICESamsung Galaxy S10 --device /dev/kvm \ budtmo/docker-android:emulator_11.0几个高频问题模拟器起不来通常是宿主机未开启 KVM 或缺少/dev/kvm设备Windows 11 需在 WSL2 中启用嵌套虚拟化6080 打不开画面检查是否设置了WEB_VNCtrue且端口映射正确装包报空间不足默认数据分区只有 550m用EMULATOR_DATA_PARTITION调大。下一步想用 adb connect 从宿主机直接操作容器内模拟器临时调试场景读从宿主机控制模拟器。想接入 Jenkins打开 USE_CASE_JENKINS.md 确认插件清单即可开始配置。另有赞助制的 docker-android-pro 镜像提供 root 权限、headless 模式、Selenium 4.x 集成等扩展能力详见 Pro 文档。【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表