【小技巧】AS手动实现无线真机调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【小技巧】AS手动实现无线真机调试相关的知识,希望对你有一定的参考价值。

参考技术A

其实无线真机调试很简单,走一遍流程就能学会并且记住,无需插件,无需Root,使用插件反而会将这个流程复杂化。
先放上纯流程版,方便通篇阅读之后的快速查阅,接下来还提供详细版以供参考。
默认读者可以成功真机调试,控制台使用 cmd 或者AS的 Terminal 均可。

由于公司电脑配置较低,虚拟机运行缓慢,所以我一直倾向于真机调试,但是有线调试空间局限性很大,经常在测试上线的几天身后围一屁股人(小公司没有版本管理跟自动编译),很不方便,无线调试就是一个很好的解决方案。

很多人倾向与使用AS插件,但是实践证明手动连接更加方便灵活,插件在某些意义上复杂了这个流程。

首先,你得有一个能正常有线调试的手机,还得有一根数据线,因为未Root的手机需要用电脑的ADB来来打开TCP模式并且绑定端口。
真机用线连电脑,打开Terminal(其实我更习惯用cmd),键入 adb devices ,这个命令会输出所有连接到这台电脑上的设备,每个设备有一个独一无二的序列号。见图1。

此时,我电脑上连接了一台设备,连接方式为有线。

在确定你的手机与电脑成功联机之后,输入命令 adb tcpip 5555 ,这个命令的作用是打开手机的TCP模式,并且将其绑定到5555接口。其中,5555端口是一个习惯使用的端口,就像mysql一般使用3306端口一样,也可以随意指定,只要不产生端口冲突即可。

这条命令执行后没有任何输出,但是手机会出现一次,类似于与电脑断线并且重新插线的反应,代表执行成功。
打开成功之后,就可以拔掉手机数据线了。

接下来执行连接命令,但是首先我们需要进入手机WIFI网络详情,找到此时手机WIFI中的IP地址。接下来就可以执行连接命令了,连接命令为 adb connect 手机IP地址:TCP绑定的端口
例如,我手机的IP地址是192.168.1.246,之前TCP模式绑定的端口为5555,此时我需要执行的连接命令为 adb connect 192.168.1.246:5555

此时控制台输出connected to 192.168.1.246:5555,表示无线连接成功。

TCP模式一旦开启,只在手机重启时才会关闭,关闭后如果还需使用需要重新开启。断网重连,换WIFI,不会关闭,只要保持手机电脑在统一WIFI下就不需要重新开启。
不过如果手机一旦断网,或者切换WIFI,与电脑的无线连接会立即断开,如果需要重新连接,重新执行一次 adb connect 命令就好。
之前说过,使用插件反而会将这个流程复杂化,是因为这个过程本来就很简单,就是几个命令的事情,这个功能是AS原生支持的,使用插件的话,如果断网或者换WIFI,插件会认为手机的TCP模式已经关闭,需要重新用线连接一次电脑,来开启TCP模式。(也可能是我用的插件不够智能?)

PS:如果执行 adb connect 命令时候,出现 由于目标计算机积极拒绝,无法连接 的提示,检查一下TCP模式是否开启,端口号是否正确。

有线与无线连接,调试方式没有差别,点击编译器上的绿色箭头 Run app 即可。
如果无线调试时候OFFLINE了,关掉手机无线网络,重新连接一次,然后重新执行 adb connect 命令即可,就像有线调试时那样。

之前检查连接的时候,使用过一个 adb devices 命令,可以得到一个已连接设备的序列号表,一次连接多台设备跟连接一台设备流程类似,通过序列号指定设备即可。

如图4,此时我的电脑通过有线接入两台设备,通过无线接入一台设备。

此时如果直接执行大部分adb命令,比如开启TCP模式,都会得到一个异常提醒,多于一个设备。如图5。

这种情况下,只要指定设备序列号就可以正常执行。
例如,需要进行TCP模式开启, adb -s f87c75bb tcpip 5555 ,但是与电脑建立连接的 adb connect 命令不需要加序列号,因为IP地址本来就相当于是序列号了。

PS:手机有线连接与无线连接都与一台电脑进行连接的话,会被识别为两台设备。就像笔记本的有线网卡与无线网卡互相独立。但这种连接没有意义,所以推荐无线连接完成之后就把线拔了把。

AS 中手动实现无线真机调试

1. 将手机与电脑连接在同一局域网内
2. 手机用线连接电脑,控制台输入命令adb devices, 有设备编号为连接成功
3. 拔手机线,控制台输入命令 adb tcpip 5555,将TCP模式在 5555 端口启动,无任何输出为成功启动
4. 控制台输入命令 adb connect 192.168.0.101:5555
其中:192.168.0.101 为手机在局域网的 ip 地址,输出连接成功
此时无线连接已经成功,正常调试即可

登陆 http://192.168.0.1/ 查看手机ip地址

以上是关于【小技巧】AS手动实现无线真机调试的主要内容,如果未能解决你的问题,请参考以下文章

2022/01/20uniapp和Android Studio无线真机调试

填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试

iOS无线真机调试

Android Studio 如何进行无线真机调试

AS不能真机调试

如何用Android Studio进行无线的真机调试