uiautomator2连接移动设备的三种方法


前置条件:

  • 移动设备必须开启开发者模式;
  • 首次连接必须使用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线进行操作

步骤:

  1. wifi连接adb需要tcpip连接模式:
  2. 开启了tcpip连接:adb tcpip 5555
  3. 执行连接命令: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 如图说明安装成功

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM