前言
一般来说可以用 python -m uiautomator2 init 这个命令帮助我们将需要的东西安装到手机上。 但是有肯专研的人想知道到底这个init命令做了哪些事情。请继续往下看
python-uiautomator2 是安卓应用的Java测试框架Uiautomator的一个Python封装。所以uiautomator这个app是一定要装的。但是uiautomator不怎么稳定,需要被照看,所以就有了atx-agent这个东西。后来为了使用方便,atx-agent增加远程控制的功能,依赖minicap和minitouch这两个工具。
所以说init这个命令往手机上安装的东西一共有
- app-uiautomator.apk
- app-uiautomator-test.apk
- atx-agent
- minicap
- minitouch
atx-agent与那两个apk会根据用户的使用反馈不停的更新。最新的版本号可以去version.py这个文件中查看
安装uiautomator app
经常有人问为什么要安装两个apk,一个app-uiautomator.apk和app-uiautomator-test.apk 一个是被测应用,一个是测试程序。框架要求这样,缺一不可。不过uiautomator这个框架允许我们测试第三方应用。所以被测应用基本就是个傀儡,只要别轻易的死掉,就算是一个合格的应用了。
Shell安装命令
VERSION=1.1.5 # 请换成最新版本
wget https://github.com/openatx/android-uiautomator-server/releases/download/$VERSION/app-uiautomator.apk
wget https://github.com/openatx/android-uiautomator-server/releases/download/$VERSION/app-uiautomator-test.apk
adb install app-uiautomator.apk
adb install app-uiautomator-test.apk
安装minicap和minitouch (可选,不安装也没关系)
模拟器不要安装minicap,不然截出来的图都是黑屏
wget https://github.com/openatx/stf-binaries/archive/0.2.zip
# 暂时先不写了
安装atx-agent
VERSION=0.4.8 # 请换成最新版本
wget https://github.com/openatx/atx-agent/releases/download/$VERSION/atx-agent_$VERSION_linux_armv6.tar.gz
tar -xzvf atx-agent_$VERSION.tar.gz
adb push atx-agent /data/local/tmp/
adb shell chmod 755 /data/local/tmp/atx-agent
# 注: 如果在/data/local/tmp 目录不好使,就push到/data/data/com.android.shell目录下
/data/local/tmp/atx-agent version # 查看版本
/data/local/tmp/atx-agent server -d # # 启动atx-agent并切换到后台运行
卸载方法(如果你只需要安装,这段代码就别看了。。)
adb shell rm /data/local/tmp/minicap
adb shell rm /data/local/tmp/minicap.so
adb shell rm /data/local/tmp/minitouch
adb shell /data/local/tmp/atx-agent server --stop
adb shell rm /data/local/tmp/atx-agent
adb uninstall com.github.uiautomator
adb uninstall com.github.uiautomator.test