zoukankan      html  css  js  c++  java
  • Appium appium 通过 adb 无线连接 Android 真机

    一、准备工作

    1、准备一台或多台Android设备(如小米,华为),开启USB调试
    2、Android设备与电脑(Mac或者Windows)在同一个局域网内
    3、电脑安装好ADB工具

    二、具体步骤

    1.使用数据线通过USB接口将手机与电脑连接,在终端中执行如下命令:

    方法一USB数据线连接:adb devices 查看设备是否连接成功。

    方法二通过无线局域网连接:adb tcpip 5555(PS:5555是连接时的默认端口号,可以设置为任何未占用的端口号)

    返回restarting in TCP mode port: 5555则代表服务开启成功,可以拔掉数据线断开电脑和手机的连接。

    2.找到手机的IP地址,执行连接命令:
    一般在设置-关于手机-状态信息-IP地址可以找到,或者执行命令:
    adb shell ip -f inet addr show wlan0
    找到我的手机IP10.0.1.121

     

    abd connect 10.0.1.121:5555

    返回connected to 10.0.1.121:5555代表连接成功
    因为我们默认端口是5555,所以执行abd connect 10.0.1.121的时候相当于执行了abd connect 10.0.1.121:5555,如果adb tcpip连接的端口号不是5555时adb connect 时IP后需要需要加上端口号。
    结果图:

    3.断开连接,执行:adb disconnect

    PS:如果手机wifi断了,也会自动中断连接,需要重新连接。

    三.解决电脑和手机的连接问题

    1、我们做APP自动化的时候,没有必要每台设备都通过USB连接电脑了(毕竟USB端口有限,而且有些线用久了,接触不良的说),只要知道无线连接的IP和端口10.0.1.121:5555
    以python+appium脚本为例,我们的连接参数可以从

    desired_caps={}
    desired_caps['platformName']='Android'
    desired_caps['deviceName'] = '58d1a05c'
    desired_caps['platformVersion'] = '7.0'
    desired_caps['appPackage'] = 'com.tencent.mm'
    desired_caps['appActivity'] = '.ui.LauncherUI'
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    改成

    desired_caps={}
    desired_caps['platformName']='Android'
    desired_caps['deviceName'] = '10.0.1.121:5555:5555'
    desired_caps['platformVersion'] = '7.0'
    desired_caps['appPackage'] = 'com.tencent.mm'
    desired_caps['appActivity'] = '.ui.LauncherUI'
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    2、由于可以无线连接设备,在我们跑APP自动化脚本的时候还可以很好的监控设备运行过程中的电量消耗,因为连接USB时会自动充电,会导致电量计算不准确。

    3、当我们需要调试自己手机时,但是手机又需要充电,明显的USB充电很慢,这时我们可以adb无线连接调试。

    4、摆脱束缚,调试的时候演示也没必要带着一堆线了,比如chrome的inspect,
    chrome://inspect/#devices

    3.1、连接多台设备

    当我们连接着两台设备时,执行
    adb tcpip 5555

     

    提示:error: more than one device/emulator
    此时我们只需要给adb命令 加上-s参数,指定设备号即可,其他的操作基本都是一样的了。
    adb -s 50f98a9f tcpip 5555

    3.2、关于真机设备连接识别问题

    1.如果List of devices attached下方没出现任何信息,就是手机没连上电脑,或者电脑上没安装手机的驱动

    C:Usersadmin>adb devices
    List of devices attached

    2.插拔usb数据线,电脑屏幕出现无法识别的usb设备,那就是手机驱动没安装好

    3.3、一 安装手机驱动

    1.电脑下载一个手机助手类的管理工具,它会自动识别手机设备型号,安装驱动

    2.手机开启开发者选项,在设置里面要是没看到‘开发者选项’,打开关于手机-对着版本号连着点10次(有的机型点击7次即可)就出来了

    3.usb调试模式勾选

    3.4、 没授权(unauthorized)

    出现unauthorized是因为手机没授权给电脑连接,重新插拔数据线,勾选USB调试

    C:Usersadmin>adb devices
    List of devices attached
    A5RNW18316011440        unauthorized

    1.手机重新连上电脑,插拔下数据线,勾选USB调试

    2.USB连接方式选择MTP

    3.5、 adb端口冲突

    1.如果出现adb server version (32) doesn't match this client (36),这个就是adb端口冲突,被其它应用占用了,比如(91助手,手机管家之类的)

    C:Usersadmin>adb devices
    List of devices attached
    adb server version (32) doesn't mat
    error: could not install *smartsock
    通常每个套接字地址(协议/网络地址/端
    could not read ok from ADB Server
    * failed to start daemon *
    error: cannot connect to daemon

    2.解决办法:卸载91助手,手机管家之类的

    3.6、 offline

    1.输入adb devices ,一直显示设备处于offline状态,先尝试以下基本操作:

    C:Usersadmin>adb devices
    List of devices attached
    A5RNW18316011440        offline
    • 开启usb调试模式
    • 关闭第三方手机助手软件
    • 重启adb服务

    adb kill-server
    adb start-server

    2.查看adb版本号,是不是低了

    adb -version

    3.查看adb环境变量,是不是配置了多个adb

    4.在手机设置中点击撤销USB调试授权,然后重新连接电脑,重新授权该电脑。

    5.如果还不行的话,那就重启手机、重启电脑。

  • 相关阅读:
    报错:Failed to create BuildConfig class
    emulator control无法使用问题
    the import android cannot be resolved
    报错:init: Could not find wglGetExtensionsStringARB!
    Android SDK升级后报错error when loading the sdk 发现了元素 d:skin 开头无效内容
    Eclipse Android环境搭建
    android中导入低版本project可能会遇到的编译问题(转自: Victor@Beijing)
    22.9
    GIT文档
    机器学习的几个问题探讨
  • 原文地址:https://www.cnblogs.com/liunaixu/p/11023823.html
Copyright © 2011-2022 走看看