前置條件:
- 移動設備必須開啟開發者模式;
- 首次連接必須使用USB線連接;
- uiautomator2版本2.15.0
方式2:需要在adb中執行命令:adb tcpip 5555 和 adb connect 192.168.10.141
#!/usr/bin/env python # -*- coding: utf-8 -*- # author: 青城子 # datetime: 2021/4/8 21:23 # ide: PyCharm import uiautomator2 as u2 # U2控制移動設備 # 第1種通過手機WIFI來進行連接,參數為手機WIFI的IP地址(u2版本2.15.0幾乎沒有成功過) # d = u2.connect_wifi("192.168.3.123") # print(d.info) # 第2種連接手機的USB進行連接(安卓模擬器和真機都可以)必須開啟USB調試模式
# 開啟了tcpip連接:adb tcpip 5555 # d = u2.connect_usb("192.168.3.123:5555") # print(d.info) # 第3種 adb tcpip模式 # d = u2.connect_adb_wifi("192.168.3.123:5555") # print(d.info) d = u2.connect_adb_wifi("192.168.3.123:5555") print(d.info)
print(d.device_info) # 輸出詳細信息
info模式輸出連接設備信息
sudo+ssh://user1@192.168.3.118:22/home/user1/u2_projdec/venv/bin/python -u /home/user1/u2_projdec/test.py already connected to 192.168.3.123:5555 {'currentPackageName': 'com.android.settings', 'displayHeight': 1280, 'displayRotation': 0,
'displaySizeDpX': 480, 'displaySizeDpY': 853, 'displayWidth': 720, 'productName': 'VOG-AL10',
'screenOn': True, 'sdkInt': 22, 'naturalOrientation': True}
device_info輸出詳細信息
sudo+ssh://user1@192.168.3.118:22/home/user1/u2_projdec/venv/bin/python -u /home/user1/u2_projdec/test.py already connected to 192.168.3.123:5555 {'udid': 'android-08:00:27:84:eb:65-AOSP_on_Shama', 'version': '5.1.1', 'serial': 'android', 'brand': 'Android', 'model': 'AOSP on Shama',
'hwaddr': '08:00:27:84:eb:65', 'sdk': 22, 'agentVersion': '0.10.0',
'display': {'width': 720, 'height': 1280},
'battery': {'acPowered': False, 'usbPowered': True, 'wirelessPowered': False, 'status': 2, 'health': 2, 'present': True, 'level': 86, 'scale': 100,
'voltage': 3, 'temperature': 26, 'technology': 'Li-ion'},
'memory': {'total': 1030696, 'around': '1 GB'},
'arch': '', 'owner': None, 'presenceChangedAt': '0001-01-01T00:00:00Z', 'usingBeganAt': '0001-01-01T00:00:00Z', 'product': None, 'provider': None}
通過ip來連接u2
前提條件:
- 手機與電腦連接同一個局域網內
- 例如:手機連接wifi后ip:192.168.10.141
- 初始時使用usb線連接方式進行初始化,后續操作即可不用usb線進行操作
步驟:
- wifi連接adb需要tcpip連接模式:
- 開啟了tcpip連接:adb tcpip 5555
- 執行連接命令:adb connect 192.168.10.141
python測試代碼:
首次必須通過usb連接后初始化,后續不需要usb線連接:
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'tian' __data__ = '2021/5/6 11:39' # software: PyCharm import uiautomator2 as u2 import time # d = u2.connect("91CEBP92DD47") # 第一次必須通過usb進行初始化,后續就可以使用wifi # print("當前服務:",d.uiautomator.running()) # d = u2.connect("192.168.10.141:5555") # d = u2.connect_adb_wifi("192.168.10.141:5555") d.debug = True print(d.device_info)
第一次連接使用 d = u2.connect("91CEBP92DD47")
初始化后使用拔掉usb連接線:u2.connect() 或者 u2.connect_adb_wifi()都可以,參數為手機ip+端口
需求:
通過代碼啟動手機上的app,運行5秒后,退出。
前提條件:
已抖音為例:下載抖音apk到本地,然后將抖音apk安裝安卓手機中。
獲取抖音apk安裝的包名
獲取包名方法:通過安卓模擬器安裝目錄里面bin目錄下面aapt工具來獲取
命令:aapt dump badging xxx.apk 獲取到包名
appt dump badging 本地抖音apk的路徑
如圖:第一行就是抖音的包名
實現代碼
#!/usr/bin/env python # -*- coding: utf-8 -*- # author: 青城子 # datetime: 2021/4/11 22:48 # ide: PyCharm import uiautomator2 as u2 import time d = u2.connect_adb_wifi("192.168.3.125:5555") print(d.info) # 啟動 d.app_start('com.ss.android.ugc.aweme') # 運行5秒 time.sleep(5) # 停止抖音app d.app_stop('com.ss.android.ugc.aweme')
ubuntu系統安裝aapt
sudo apt-get install aapt
如果出現無法解析域名的錯誤:
編輯etc/resolv.conf文件,在最后加上nameserver 8.8.8.8
sudo vim /etc/resolv.conf
在最后加上nameserver 8.8.8.8
保存退出,重新安裝aapt即可。
輸入aapt 如圖說明安裝成功