Docker 有效管理 Andriod 设备 - 利用 udev 和 docker 实现容器和安卓设备 USB 口的一一映射

Charles · 2018年01月31日 · 最后由 zengqingfu1442 回复于 2019年05月23日 · 7111 次阅读

管理上百台 Android 测试设备并共测试框架使用或者开发远程 Debug,可能会遇到情况

  • Android 测试设备众多 (不同品牌不同型号), 如何 自动 有效 划分归类?
  • 一台 Server 挂了 N 个 Android 测试设备,经常在 adb devices 后遇到 offline 的设备,如何重新让设备上线
    • 重启 adb daemon or 重启 Server? 影响其他正常在跑测试的设备。。
    • 手动插拔 offline 设备? 先要弄清楚是哪个 Server 哪个 USB 口对应的设备。。。

提供一个方法 (仅供参考),利用 udev 和 docker,实现自动管理 Android 设备

  • 新设备插入 USB 时,自动创建一个一一对应的容器,在容器内部 adb 只能看到唯一对应的这台 Android 设备,执行 TCP 方式执行测试在这台设备上,同时还集成了 STF 方便远程控制设备。 当然还可以在容器启动的时候把 Android 设备信息以及所处 Server 信息上报到数据库供测试框架派发测试 Job 和调度使用,还可以心跳汇报设备当前状态

  • 当 Android 拔出时,对应的容器被删除


代码详见
https://github.com/nuaays/android_udev_stf_container

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

你的 docker 环境安装了 adb?

你这个设备是在 USB 集线器上连的?

对 cooling 回复

嗯,adb 做在镜像中了

对 卡农Lucas 回复

如果是集线器,需要调整设备 PCI 路径

2楼 已删除

"新设备插入 USB 时,自动创建一个一一对应的容器,在容器内部 adb 只能看到唯一对应的这台 Android 设备", how to do that?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册。