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

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

管理上百台 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 路径

5楼 已删除

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

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