前置条件:
- 移动设备必须开启开发者模式;
- 首次连接必须使用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 如图说明安装成功