Docker中使用安卓模拟器

可以在Docker中创建安卓模拟器吗?答案是可以。

docker-android是一个开源项目,可以在Docker下运行带有Android模拟器的容器,虽然当前仅限x86架构的。

Github地址: https://github.com/budtmo/docker-android

特点

  1. x86架构模拟器;
  2. 需要kvm支持、虚拟化支持;
  3. 嵌套虚拟化会非常慢,没法用。裸机Linux上运行非常快,Samsung Galaxy S6 with Android8 进入桌面只需要30秒左右;
  4. 支持浏览器VNC连接 http://ip:6080
  5. 支持adb连接 adb connect ip:5555
  6. 内存占用5G左右;
  7. 自带Appium、Python、Node、Java,版本不高;
  8. 无需可视化界面也可以执行自动化测试任务,如Appium;

要想顺畅地使用这个容器做Android模拟器,硬件一定要跟的上:

  1. CPU支持并开启虚拟化,最好8代i3以上Intel的桌面CPU;
  2. 内存16G以上;
  3. 固态硬盘。

常用脚本

  1. 创建Docker容器
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -p 4723:4723 -e DEVICE="Samsung Galaxy S6" --name android1 budtmo/docker-android-x86-8.1
  1. 开启appium服务,可跨域,指定4723端口,指定某个设备。容器内执行:
appium --allow-cors -p 4723 -U ip:5555 > /dev/null 2>&1 &

推荐机型和系统

主要基于启动速度和流畅性考虑,运行在i5-4590/16G内存/256G SSD的机器上。下面两个最快:

  1. Samsung Galaxy S6 & Android 8.1 35S 474*839
  2. Galaxy Nexus & Android 8.1 35S

下面几个勉强可用,可做备选,硬件好的话会快点

  1. Samsung Galaxy S7 & Android 8.1 40S 1440*2560
  2. Samsung Galaxy S8 & Android 8.1 40S
  3. Nexus 7 & Android 8.1 40S
  4. Nexus 6 & Android 8.1 45S

其它的,基本上没法用了。

  1. Samsung Galaxy S6 & Android 9.0 50S
  2. Samsung Galaxy S7 & Android 9.0 65S
  3. Samsung Galaxy S8 & Android 9.0 70S

Leave a Comment

豫ICP备19001387号-1