一、准备工作

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:\Users\admin>adb devices
List of devices attached

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

3.3、一 安装手机驱动

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

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

3.usb调试模式勾选

3.4、 没授权(unauthorized)

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

C:\Users\admin>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:\Users\admin>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:\Users\admin>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.如果还不行的话,那就重启手机、重启电脑。

Appium appium 通过 adb 无线连接 Android 真机的更多相关文章

  1. 使用ADB无线连接Android真机进行调试

    使用ADB无线连接Android真机进行调试   其实这已经是一个很古老的知识了,记录一下备忘. 准备工作 手机和电脑需要在同一个局域网内 电脑上已经安装好ADB工具,可以是Mac或者Windows ...

  2. adb无线连接android手机进行调式,无需获得root权限

    利用adb无线连接android手机进行调式 无需获得root权限 转载来自CSDN  https://blog.csdn.net/lnking1992/article/details/5346518 ...

  3. Unity Frame Debugger连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...

  4. Unity Profiler连接Android真机调试

    Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ...

  5. iOS 11开发教程(十)iOS11无线连接手机真机测试

    iOS 11开发教程(十)iOS11无线连接手机真机测试 在Xcode 9.0中,已经可以通过无线连接手机进行真机测试了.具体的操作步骤如下: (1)首先需要使用数据线将手机连接到苹果电脑上. (2) ...

  6. appium连接Android真机,并调试

    Android真机:华为pad2 Android和Windows连接同一个局域网 连接USB Android机设置: 打开USB调试 cmd>adb devices,显示Android序列号 , ...

  7. 通过adb shell操作android真机的SQLite数据库

    要通过命令行直接操作android真机上的SQLite数据库,可以直接通过adb shell来完成,不过,前提是必须获得root权限. 另外,android系统其实就是linux的shell,这个应该 ...

  8. 使用adbWireless无线调试Android真机设备[转]

    开发Android的朋友都知道,真机调试需要把手机与PC相连,然后把应用部署到真机上进行安装和调试.长长的USB线显得很麻烦,而且如果需要USB接口与其他设备连接的话显得很不方便.今天介绍一种不通过U ...

  9. eclipse无线连接android真机能进调试

    将手机与电脑连接到同一个网段, 在手机上安装wifi adb程序,并打开,会得到一个IP及端口,比如是 192.168.1.126:5555 进入android sdk目录sdk\platform-t ...

随机推荐

  1. MySQL保存微信昵称中的特殊符号造成:(Incorrect string value: "xxxx'for column ‘name’ at row 1)异常

    今天有业务员反应,编辑某个用户的信息的时候出现了异常,异常信息如下: Incorrect string value: "xFOx9Fx92x9D vxE6..'f or column 'na ...

  2. 「Kafka」Kafka中offset偏移量提交

    在消费Kafka中分区的数据时,我们需要跟踪哪些消息是读取过的.哪些是没有读取过的.这是读取消息不丢失的关键所在. Kafka是通过offset顺序读取事件的.如果一个消费者退出,再重启的时候,它知道 ...

  3. Windows、Linux之间传输文件的几种方式

    常见的文件传输协议有ftp.sftp,sftp就是在ftp的基础上对传输的数据进行了加密. ftp速度快,sftp速度略慢但安全性高. ftp默认使用21端口,sftp默认使用22端口. 我使用的是C ...

  4. Lucene之索引库的维护:添加,删除,修改

    索引添加 Field域属性分类 添加文档的时候,我们文档当中包含多个域,那么域的类型是我们自定义的,上个案例使用的TextField域,那么这个域他会自动分词,然后存储 我们要根据数据类型和数据的用途 ...

  5. 【转】JS 的 new 到底是干什么的?

    原文:https://zhuanlan.zhihu.com/p/23987456?refer=study-fe 大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不 ...

  6. Bash脚本编程学习笔记06:条件结构体

    简介 在bash脚本编程中,条件结构体使用if语句和case语句两种句式. if语句 单分支if语句 if TEST; then CMD fi TEST:条件判断,多数情况下可使用test命令来实现, ...

  7. #6041. 「雅礼集训 2017 Day7」事情的相似度 [set启发式合并+树状数组扫描线]

    SAM 两个前缀的最长后缀等价于两个点的 \(len_{lca}\) , 题目转化为求 \(l \leq x , y \leq r\) , \(max\{len_{lca(x,y)}\}\) // p ...

  8. windows系统安装python

    1.python3 下载 官网下载:https://www.python.org百度网盘下载:https://pan.baidu.com/s/1dH0UZg_7Q-YcppR0PjUfzQ提取码:xl ...

  9. 网站SEO中服务器优化的三个问题

    网站做好之后,站长第一件事就是想到去做SEO,但是有一些网站在做优化的时候,出现一些奇怪的情况,比如说优化已经不错的网站,排名突然就掉下来了:还有一些网站各项优化工作都是非常认真,但是排名却一直不上来 ...

  10. ECMAScript基本对象——Global全局对象

    特点: 全局对象,这个Global中封装的方法不需要对象就可以直接调用.直接写  方法名():就可以调用 url编码:浏览器自动转换谷歌浏览器:wd=淘宝IE浏览器:wd=%E6%B7%98%E5%A ...