termux + UIAUTOMETOR2 + django2 实现自动化控制安卓执行脚本 + 群控

这次接到一个任务,要求批量操作安卓手机,数量大概有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提交到服务器,这样就完成了数据的手机

原文地址:https://www.cnblogs.com/darkspr/p/10767067.html