這次接到一個任務,要求批量操作安卓手機,數量大概有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:\Python37\Lib\site-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提交到服務器,這樣就完成了數據的手機