这次接到一个任务,要求批量操作安卓手机,数量大概有20台吧,还要求有个中控台,可以查看当前脚本执行情况
思考了下,决定使用termux + UIAUTOMETOR2 + django2 完成
构架如下
服务器(django完成中控+API)<--> 安卓手机(termux来接收和发送信息<-->UIAUTOMETOR2来执行自动化脚本操作)
---------------------------------------------------------------------------------------------------
首先安卓手机安装termux,建议使用F-Droid安装(另外termux-api也可以安装,提供一些系统功能,比如弹个消息什么的)
另外安装openssh,python3,UIAUTOMETOR2库来完成环境配置
---------------------------------------------------------------------------------------------------
因为需要用服务器来控制安卓手机,所以需要ssh到termux
现在网上提供的都是用key来登录ssh,比较麻烦,其实termux也是可以直接用账号密码来ssh的
接下去就是操作
#首先是常规升级 apt update apt upgrade #然后是安装需要的软件 apt install openssh pkg install termux-auth #获取用户名 比如u0_a150 whoami #设置密码,按照要求输入2次密码 passwd #查看自己ip,比如inet addr: 192.168.2.243 ifconfig #开启ssh sshd -p 9000 #电脑端输入,然后输入密码即可 ssh u0_a150@192.168.2.243 -p 9000
接下去是python3 和 UIAUTOMETOR2库的安装
#python3安装
pkg install python3
还有一些依赖库
pip install six
pip install humanize
#UIAUTOMETOR2库,这个需要从电脑端复制过去
找到电脑端安装的位置,把文件夹直接复制到termux下的目录即可完成安装
一般是在这个位置
/data/data/com.termux/files/usr/lib/python3.7/site-packages
自己电脑的话一般在这个位置
C:Python37Libsite-packages
复制过去就行了
接下去就是安卓端的初始化,将手机用usb线连接到电脑
电脑上执行(需要adb配合,自己可以去下adb的插件,放到python37目录下即可)
使用python3 -m uiautomator2 init 初始化安卓手机,会安装一个app,这样就完成了配置
测试连接,如果出现如下信息就是配置好了
>>> import uiautomator2 as u2 >>> d = u2.connect('192.168.1.100') >>> d.info {u'displayRotation': 0, u'displaySizeDpY': 640, u'displaySizeDpX': 360, u'screenOn': True, u'displayWidth': 1080, u'productName': u'hermes', u'currentPackageName': u'xxxx', u'sdkInt': 21, u'displayHeight': 1920, u'naturalOrientation': True} >>>
---------------------------------------------------------------------------------------------------
接下去是服务端的配置
服务端配置python3 + django2 + paramiko即可
paramiko库提供ssh操作
---------------------------------------------------------------------------------------------------
使用django搭建一个后台,将手机都配置到服务器,手机上面都使用静态ip
然后就可以使用ssh连接到各个手机执行自动化脚本操作了,脚本将数据通过API提交到服务器,这样就完成了数据的手机