AndroidADB无线连接Android设备

Posted 宾有为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidADB无线连接Android设备相关的知识,希望对你有一定的参考价值。

目录

简介

Android Debug Bridge,简称adb,是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

无线连接的条件

使用adb无线连接设备,应具备以下条件:

  • 一台安装了android Studio开发工具的电脑。
  • 一台与电脑处于同一网段的Android设备(一般可通过连接相同wifi、宽带实现网段相同)。
  • 在电脑使用cmd执行 ping <Android设备ip地址> 能够ping通。

adb连接设备

方法一

当满足上述提到的条件,就可以开始连接了。

打开cmd.exe或Android Studio软件里面底部的Terminal工具,输入以下命令:

adb connect <ip地址>:5555

连接上的设备可以通过执行adb devices命令查看

adb devices

设备连接上,就可以查看并对设备进行安装调试的工作了

连接上的设备可通过执行adb disconnect <ip地址>:5555断开连接

adb disconnect <ip地址>:5555

部分设备默认端口不是5555,需要手动修改,请看下方的修改端口号。

方法二

使用方法二进行adb连接,应该是出现了使用方法一连接不通adb的情况,这时候就可以使用方法二来进行连接。

  1. 需要将USB线(可以传输数据的USB线)连接安卓和开发电脑,在开发者选项中开启USB调试,并将USB配置为MTP(多媒体传输)。
  2. 在电脑上打开cmd命令行窗口,输入adb devices,如果出现有设备,表示电脑已通过USB连接上手机。
  3. 接着在cmd命令行窗口输入两条命令:
    adb root   <!-- 使用root权限重新启动adbd -->
    adb shell  <!-- 进入到Android系统的shell -->
    
  4. 输入命令,将设备端口改为5555,将5555改为-1则表示打开adb的USB调试功能。
    setprop.service.adb.tcp.port 5555
    
  5. 输入exit命令,退出shell。
  6. 设置目标设备以监听端口 5555 上的 TCP/IP 连接。
    adb tcpip 5555
    
  7. 拔掉USB线,输入connect连接命令即可完成连接。
    adb connect <ip地址>:5555
    

修改端口号

方法一

端口号修改,使用到Github上标星31.5k的AndroidUtilCode,该工具有提供相关类在Android设备上执行cmd命令。

引入:

implementation 'com.blankj:utilcodex:1.30.1'

Java代码:

ShellUtils.CommandResult openAdb = ShellUtils.execCmd("setprop service.adb.tcp.port 5555", AppUtils.isAppRoot());

AndroidUtilCode使用教程

方法二

使用数据线连接上设备,执行命令adb tcpip 5555,将端口号重置为5555。

adb tcpip 5555

修改端口号后,拔掉数据线,执行adb命令出现连接失败的情况,这是修改失败了,可尝试下方问题集合的第二点解决问题。

值得注意的是,Android官方在Android 11+的设备推出了升级版的无线调试,届时直接扫描Android studio开发工具生成的二维码即可连接,简单又便捷。

辅助工具

adb工具的使用前提是必须先连接上设备

android-tool

android-tool是一个Flutter编写的程序,支持Windows、Mac、Linux系统,它将adb的众多命令封装成一个个小小的功能,极大的提高了执行adb相关操作的效率。

链接:用Flutter开发一个桌面端ADB工具应用

scrcpy-gui

scrcpy-gui是一个无需root权限即可在pc端操控Android设备的工具。

链接:scrcpy-gui

问题集合

1、missing port in specification: tcp:192.168.31.209
原因:缺少端口。
解决方案:加上端口,默认为5555

2、cannot connect to 192.168.31.209:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
原因:端口号不对。
解决方案:安装一个app使用adb命令配置端口号。最好是使用数据线连接上设备,执行adb tcpip 5555命令监听端口 5555 上的 TCP/IP 连接,响应restarting in TCP mode port: 5555后,拔掉数据线执行连接命令即可。

3、ping不通怎么办?

解决方案

  • 检查ping的ip地址是否正确,pc端的ip地址与移动端的ip地址网段是否相同。
  • 若提示无法访问目标主机,如果核对ip、网段都没错,是移动端设备还没有root,不允许你访问

    需要下载相关的root工具将设备给root掉,root成功就可以ping通。
    设备root成功,若是还不能够ping通,请切换无线连接的WiFi再次尝试。

其它问题暂未遇到,如本文提供方法无法处理,请查看下方的参考文档。若无法连接,请放弃使用adb无线连接的方案,改用可传输数据的数据线进行连接。

参考文档

以上是关于AndroidADB无线连接Android设备的主要内容,如果未能解决你的问题,请参考以下文章

哪位说说如何用androidadb连接手机

Androidadb无法连接设备原因及解决办法

Android adb无法连接设备的总结

循环使用 USB 电缆时,Android ADB-over-WiFi 仍会断开连接(?!?)

如何无线调试Android应用

Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能