简要说明

这里要说的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. 里面有足够多的信息,保证让你可以学会如何使用。

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


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