资讯动态

不装 SDK:一条命令拉起 Docker Android模拟器,浏览器里直接测安卓

发布时间:2026/9/11 22:49:04 来源:尧图企业网站定制
不装 SDK一条命令拉起 Docker Android模拟器浏览器里直接测安卓【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-androidCI 流水线里要一台干净的安卓设备一条 docker run 就拉起来浏览器里就能看到模拟器桌面。docker-android 是一个容器化安卓测试环境把模拟器和 noVNC 打包成镜像拉起来就能测。它解决什么问题传统安卓测试流程是这样的新机器装 SDK、下系统镜像、配模拟器跑通了还不敢保证环境和别人的一致。docker-android 把这些全部打进一个镜像启动时通过环境变量选设备 profile三个场景最典型自动化回归测试脚本需要通过 ADB 驱动模拟器。把容器的 5554/5555 端口暴露出来宿主机adb connect就能操作测试机本地装没装安卓环境都不影响结果。多机型兼容性验证项目自带三星 Galaxy S6 到 S10、Nexus 系列、Nexus 7 平板等 12 个设备 profile多开几个容器就能并行跑一台卡住不影响其他机型的用例。CI/CD 流水线集成在 Jenkins 或 GitLab CI 里拉镜像、跑用例、删容器。镜像 tag 锁定安卓版本基线稳定环境完全可复现跑完不留状态。使用场景推荐机型/系统关键配置点自动化回归测试任意手机 较新安卓镜像暴露 5554/5555 供adb connect多机型兼容性验证三星 S6/S10、Nexus 系列混编每机型一个容器改EMULATOR_DEVICECI/CD 流水线任意机型固定镜像 tag构建阶段拉起测试完删除容器第一次跑通一条命令拉起 Docker Android模拟器 先确认机器支持虚拟化Ubuntu 下一行检查sudo apt install cpu-checker kvm-ok如果输出不可用先去 BIOS 打开虚拟化否则模拟器只能跑纯软件模拟速度会让你怀疑人生。只想跑测试的话不需要 clone 仓库官方镜像就够了想改设备 profile 或者自己构建镜像先拉代码git clone https://gitcode.com/GitHub_Trending/do/docker-android然后挑一个机型。系统版本由镜像 tag 决定从emulator_9.0到emulator_14.0都有机型系统版本适合什么场景Samsung Galaxy S10Android 9.0–14.0由镜像 tag 决定现代高分辨率应用默认选择Samsung Galaxy S6同上老应用、低配性能兼容Nexus 5同上应用兼容性基线Nexus 7同上平板横屏布局接着拉起容器。下面这条命令拉取 Android 11 的镜像把 6080 端口映射到宿主机打开 Web VNC 界面并挂载 KVM 设备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然后在浏览器打开http://localhost:6080/?autoconnecttrue等几分钟就能看到 S10 的开机画面不用装 SDK、不用配环境变量。想确认启动进度读一下容器内的状态文件docker exec -it android-container cat device_status状态到启动完成后就可以从宿主机adb connect装应用、跑测试了。免安装安卓模拟器的魅力就在这整个环境就是一个镜像 tag 的事。让环境更快、让数据不丢性能KVM 硬件加速配置与资源分配⚡ KVM 硬件加速是第一性能开关启动容器时传--device /dev/kvm前提是宿主机用户能访问/dev/kvm权限问题见下一节。第二步是给模拟器留足资源# --device /dev/kvm KVM 硬件加速速度提升最大的一项 # --memory4g 容器内存上限模拟器建议 4G 起步 # --cpus2 CPU 核心数多容器并行慢时可以加 docker run -d -p 6080:6080 --device /dev/kvm --memory4g --cpus2 \ -e EMULATOR_DEVICESamsung Galaxy S10 -e WEB_VNCtrue \ budtmo/docker-android:emulator_11.0数据持久化挂载数据卷保留应用默认行为是容器重启后模拟设备被清空装的应用和数据全没。不想每次重装测试应用的话把数据卷挂到/home/androidusr# 容器内安卓用户数据目录绑到命名卷容器重建数据还在 docker run -d -p 6080:6080 -v data:/home/androidusr \ -e EMULATOR_DEVICESamsung Galaxy S10 -e WEB_VNCtrue \ budtmo/docker-android:emulator_11.0多设备并行很简单多给一个端口就行# 两个容器并行各自映射到宿主机不同的 Web VNC 端口 docker run -d -p 6080:6080 --name s10 -e EMULATOR_DEVICESamsung Galaxy S10 budtmo/docker-android:emulator_11.0 docker run -d -p 6081:6080 --name nexus7 -e EMULATOR_DEVICENexus 7 budtmo/docker-android:emulator_11.0遇到问题怎么办现象docker run报/dev/kvmpermission denied →原因当前用户不在 kvm 组 →解法把用户加进组重新登录生效sudo usermod -a -G kvm $USERWSL2 用户还需要额外开启嵌套虚拟化细节见 README.md 的 WSL2 一节。现象模拟器启动慢、中途卡死、VNC 画面很卡 →原因KVM 实际没生效或容器资源太紧 →解法先用kvm-ok确认虚拟化可用再加大--memory/--cpus数据分区不足还可以加-e EMULATOR_DATA_PARTITION900m。现象想把应用装进容器里的模拟器不知道 APK 往哪放 →原因容器内 ADB 服务默认和宿主机隔离 →解法启动容器时加-p 5554:5554 -p 5555:5555宿主机执行adb connect 容器IP:5555之后照常adb install app.apk。接入你的工作流 单机跑通之后下一步就是把这台 Docker Android模拟器折进团队流程CI/CD 集成官方文档有现成的 Jenkins 用法示例documentations/USE_CASE_JENKINS.md。Jenkins、GitLab CI 套路都一样构建阶段拉容器测试阶段adb connect跑套件收尾删容器。容器化 CI 测试的好处是结果可复现不存在我本地是好的这种环境漂移。自动化测试框架对接基础镜像基于 Appium 构建加-e APPIUMtrue并开放 4723 端口容器本身就是个 Appium Server测试代码直接驱动documentations/USE_CASE_APPIUM.md。自定义设备配置内置 12 个 profile 不够用时新的设备 profile 和皮肤可以放到 mixins/configs/devices/ 下documentations/ 目录里还有短信模拟、云端部署等场景的现成示例。docker-android 把一次性的环境配置换成了拉起来即用一个容器就是一台干净、可控、可复现的安卓测试设备。先跑起来细节慢慢调。【免费下载链接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server项目地址: https://gitcode.com/GitHub_Trending/do/docker-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价