ADB支持两种连接Android系统的方式,USB方式及网络方式。一般手机及平板默认会设置为USB方式。
android系统底层运行着一个服务(adbd),用于相应和管理大家在电脑端的adb命令连接,
这个服务在启动时会根据手机的配置监听USB连接或网络其中之一。
配置的属性为:
service.adb.tcp.port <- 监听的网络端口
以上属性的值 > 0 : adbd将监听网络对应的端口(一般为5555)
以上属性的值 <=-1: adbd将监听USB
所以默认情况下 我们 的android设备开启开发者选项以及usb调试之后,默认是可以 adb devices 看到设备的,看到设备之后 直接 adb shell即可
但是如果我们想 开启wifi 进行adb调试的话,得做到如下:
1. 关闭pc电脑端的防火墙
2. 配置手机端 service.adb.tcp.port =0(配置的工具可以用 adbwireless 或者airdb),于是有了下面的文章
Android开发无线调试工具adbwireless的使用简介(附AirADB)
adbWireless能够让手机用无线来取代USB连接而使用ADB工具
手机需要root并且与电脑在同一局域网内(可以连同个路由或者电脑开WiFi给手机连接)
ADB(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机
模拟器的状态。还可以进行以下的操作:
1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2、在设备上运行shell命令;
3、管理设备或手机模拟器上的预定端口;
4、在设备或手机模拟器上复制或粘贴文件;
注:本文参考资料会在文章最后注明。文中不足之处,欢迎批评指正!
前言
手机没有升级之前是5.0的系统,当时就在用adbwireless工具进行无线调试。手机升级到了6.0系统,权限管理已经改变,adbwireless又长久没有更新,导致手机即使root之后仍然不能够进行无限调试,报错:unable to connect to 192.168.1.131:5555: cannot connect to 192.168.1.131:5555: 由于目标计算机积极拒绝,无法连接。 (10061)。起初以为是权限问题,就去github上把项目clon到本地,添加了6.0权限,运行之后错误不变。多方求索,通过设置手机默认的ADB连接方式可以解决该问题(后面会讲到)。搞定后,决定码字分享一波,写到最后,在别的相关资料里发现了更好用的无线调试工具(手动大写尴尬),我会一并分享出来,嘤嘤嘤嘤……(白忙活了Orz)。有兴趣的就往下看一下,只是寻求一个无线调试的工具的话,工具下载下来就好了,无线调起来吧(XX,根本停不下来)!第一次发文,多多指教!
adbwireless下载地址
adbwireless下载地址(写入了6.0权限) 提取密码:mwb1
AirADB下载地址
ADB的配置
手机下载安装好adbwireless之后,在电脑上配置ADB(已安装的可跳过该步骤)
- 在Sdk里找到adb.exe,复制其所在路径C:\Users\Maven\AppData\Local\Android\Sdk\platform-tools
如果不记得Sdk文件目录,可以在Android Studio的设置里进行查看
File>>Settings>>Appearance&Behavior>>System Settings>>Android SDK
- 配置ADB环境变量
右键我的电脑>>属性>>高级系统设置>>环境变量
在系统变量(s)里找到Patch,选择编辑。将ADB所在的目录复制进去,注意用“;”与其他变量分隔开
- 检测ADB是否配置成功
打开命令行窗口(windows键+R)
输入指令‘adb devices‘
如下图所示,则说明配置成功
无线调试
接下来就是见证奇迹的时刻
- 打开adbwireless(已获取root权限),界面显示当前设备的ip地址;
- 打开Android Studio控制台的Terminal,输入adbwireless界面显示的指令
adb connect 192.168.8.101,
输出 connected to 192.168.8.101:5555则表示连接成功。接下来开始无线调试之旅吧,跟USB连接无差别。
同样的你也可以直接在命令行窗口输入以上指令,也是可以连接成功的。
注:下次要用时只需要把手机和电脑连同个局域网,手机打开adbwireless,电脑在命令提示符里执行"adb connect xxx.xxx.xxx.xxx"(xxx.xxx.xxx.xxx为adbwireless显示的ip地址)就行了。
异常的处理
-
error: cannot parse version string: kg01
出现这个错误先在环境里看下adb的路径对不对,如果没错就在任务管理器里把adb.exe,或kadb.exe结束掉,然后重新执行adb connect xxx.xxx.xxx.xxx命令就行 -
如果是adbwireless上的IP地址是adb connect 0.0.0.0的话,把adbwireless关掉,重新启动一下
-
unable to connect to 192.168.1.131:5555: cannot connect to 192.168.1.131:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
出现这个错估计是手机root了,但是没有授权给adbwireless,下载个root的授权管理。然后给adbwireless授权。再重新连接就行
如果以上方法不能解决问题,试着切换一下ADB连接手机的方式
ADB支持两种连接Android系统的方式,USB方式及网络方式。一般手机及平板默认会设置为USB方式。
android系统底层运行着一个服务(adbd),用于相应和管理大家在电脑端的adb命令连接,
这个服务在启动时会根据手机的配置监听USB连接或网络其中之一。
配置的属性为:
service.adb.tcp.port <- 监听的网络端口
以上属性的值 > 0 : adbd将监听网络对应的端口(一般为5555)
以上属性的值 <=-1: adbd将监听USB
具体设置方法(手机需要与电脑连接)
-
enable adb over wifi:
adb tcpip 5555 //在与手机相连的电脑上执行 -
重新连接就可以了。
注:关闭无线调试的指令为 ’adb disconnect xxx.xxx.xxx.xxx‘需要手动切换ADB的连接方式(6.0以上),如果懒得每次在手机上敲命令,可使用这个工具AirADB,直接一键设置,并支持开机自动设置!! 需root权限!附上AirADB的主页面
参考资料
slightlywobbly/github
Android studio使用adbwireless实现WiFi调试
ADB连接手机的两种方式
Android 网络调试 adb tcpip 开启方法