简要说明

这里要说的 uiautomator2 是一个 python 库,用于 Android 的 UI 自动化测试,项目地址https://github.com/openatx/uiautomator2. 项目发源于 xiaocong 的uiautomator这个项目,新项目最大的改变要数原来手机必须数据线连接电脑的,但是使用了 uiautomator2 这个项目,就可以用 WiFi 代替 USB 连接电脑了。简单来说就是可以不用数据线了。

实现原理简介

第一步还是需要手机连接到电脑的。电脑使用 adb 向手机推送了一个二进制文件: atx-agent. 然后启动这个程序,程序自身屏蔽掉 SIGHUP 信号,这样数据线断开之后,程序就不会被杀掉了。
第二步拔掉数据线,保持手机的 Wifi 开启,并且一直有电的状态。
第三步 atx-agent 实际上还是一个 http 服务器,运行在电脑上的 python 程序使用 HTTP 协议跟手机上 atx-agent 通信,atx-agent 随后启动 uiautomator.apk 这个应用,将收到的请求转换成 UiAutomator 的 UI 自动化操作。

没有数据线的好处

  1. 不用担心数据线的损坏问题
  2. 不用担心电脑 adb 的不稳定问题
  3. 不用担心手机的开发者选项经常会定时关闭 usb 调试

其他的 adb 操作没有数据线如何实现?

  1. push 文件到手机上?

    这里使用的是 http 文件上传

  2. 从手机上 pull 文件到电脑上?

    这里使用的是 http 的文件下载

  3. adb install如何实现?

    先上传 apk 文件到手机上,然后调用pm install达到一样的效果

  4. 还想要adb shell终端怎么办?

    为此我专门写了一个网页版的 web terminal, 用的是流行的 term.js

我该如何使用这个库?

这个项目目前还属于火热的开发状态,随时关注项目主页的 README https://github.com/openatx/uiautomator2. 里面有足够多的信息,保证让你可以学会如何使用。

还有更多问题欢迎留言。😀


↙↙↙阅读原文可查看相关链接,并与作者交流