
搞安卓开发这些年最烦的事之一就是调试的时候手机跟电脑之间那根USB线。要么是线材接触不良导致设备反复断开要么是手边正好没有合适的线要么是调试平板、电视盒子这类设备时根本没法方便地插线。所以无线ADB调试一直是我环境搭建里的刚需。到了Android 13上无线调试的入口和配对逻辑跟早期版本相比有了明显变化很多人一上来就卡在“配对码”这一步更别提把ADB端口固定成5555长期使用了。这篇文章就把我在Android 13设备上配置无线ADB调试的全过程拆开讲清楚尤其是“永久开启”和“端口5555”这两个大家最关心的点到底该怎么实现有哪些坑一次说完。1. 无线ADB调试的本质以及Android 13改了什么1.1 ADB的基本工作模型先把底层的机制说清楚。ADBAndroid Debug Bridge是个典型的C/S架构调试工具由三部分组成电脑上跑的客户端adb命令行、电脑后台的adbserver服务进程以及手机里运行的adbd守护进程。平时用USB调试时电脑的adb client把命令交给本机的adbserveradbserver再通过USB通道发给手机里的adbdadbd来执行最终的命令并返回结果。无线ADB调试做的事情很简单把USB这条物理通道换成TCP/IP网络通道。手机上的adbd监听某个端口电脑上的adbserver通过网络跟这个端口建立连接之后所有调试命令照常走。从用户视角看只要手机和电脑在同一个局域网里能互通就不需要线缆了。1.2 Android 13在无线调试上到底改了什么很多人以为Android 11之后无线调试都能直接打开、直接连其实不然。Android 11及之后的版本系统对无线调试的入口和配对流程做了重新设计开发者选项里新增了独立的“无线调试”开关和“USB调试”分开控制。连接方式从早期安卓版本的无脑直连变成了带安全验证的“配对码”机制。系统分配的调试端口是动态的每次开启无线调试时可能都不一样不再是传统概念里固定的5555。Android 13延续了这套设计而且配对窗口的有效期很短如果操作慢了就得重新生成配对码。很多新手第一次看到“无线调试”界面里的“使用配对码配对设备”都会懵一下不知道这个码该填到哪、IP和端口该填哪个。1.3 先搞清楚你到底需不需要固定5555端口这里必须说明一个容易混淆的点。Android 13的无线调试功能和早期Android版本里用adb tcpip 5555命令开启的调试监听不是一回事。系统的无线调试界面会给每台设备动态分配一个端口你在连接时要用它显示的那个“IP地址和端口”而不是想当然地去连5555。那标题里的“端口5555”还有意义吗有意义但要看场景。如果你只是临时连一下动态端口完全够用如果你希望有一个长期稳定的固定入口不想每次连接前都去手机上翻端口号那确实需要手动把adbd固定到5555端口。后面我会专门讲这一步怎么操作以及为什么很多人做了之后重启又失效了。2. 配置前的准备工作2.1 必备工具清单在开始动手之前先确认几样东西是不是齐了一台Android 13系统的手机或平板电视盒子等设备同理但入口可能有差异。一台电脑Windows、macOS、Linux都可以关键是得有ADB工具。手机和电脑连在同一个局域网里这个局域网不需要有外网但设备间要能互通。如果手机还没解锁开发者选项还需要一根USB线做首次配对用后面无线连接稳定了就能拔掉。ADB工具如果电脑里没有最省事的方式是下载Android官方提供的platform-tools压缩包解压后把目录加入系统PATH。装好之后在命令行里执行adb version能输出版本号说明工具就绪了。2.2 手机端开启开发者选项这一步绝大部分人都懂但为了给刚入门的朋友铺路还是提一遍在手机“设置”里找到“关于手机”连续点击“版本号”7次左右系统会提示“您已处于开发者模式”。然后返回设置主页面找到“系统”里的“开发者选项”进去后把“USB调试”打开。这里有个细节在Android 13上想用无线调试最好先把USB调试也打开因为首次无线配对过程中某些手机厂商定制系统会要求USB调试处于开启状态否则无线调试里的部分功能会置灰。2.3 网络环境要求同一个Wi-Fi只是基础无线ADB本质上走的是TCP/IP网络所以网络环境直接决定了能不能连上。我实测下来有几个容易被忽略的地方手机和电脑必须在同一个网段比如都在192.168.1.x。如果办公网络里开了“访客隔离”或者“AP隔离”无线调试基本连不上。手机最好连接5GHz频段的Wi-Fi2.4GHz在干扰大的环境里延迟和丢包都会明显增加尤其是跑adb install大包或者scrcpy投屏时体感差别很明显。如果电脑连着有线网手机连着Wi-Fi只要路由器没开“有线/无线隔离”一般也能互通。但部分企业网络策略会禁止跨界访问这种情况只能换个人热点或者直接把电脑也连Wi-Fi。3. 手把手配置无线ADB调试3.1 Android 13的“无线调试”界面里每个按钮都是干嘛的打开“开发者选项”往下拉找到“无线调试”点进去会看到一个开关。打开之后界面顶部会显示“当前网络下的设备IP地址和端口”下面有三个选项“使用配对码配对设备”“扫描二维码配对”“IP地址和端口”。很多人容易在这里犯一个错直接把顶部显示的“IP地址和端口”拿去命令行执行adb connect结果报cannot connect to 192.168.1.x:39599: 由于目标计算机积极拒绝无法连接。原因很简单——这个地址要等配对完成之后才能连你还没建立信任关系adbd根本不会理你。正确顺序是先配对再连接。3.2 用配对码完成首次配对在手机上点“使用配对码配对设备”屏幕上会出现6位数字配对码同时会显示一个专门用于配对的端口号形式类似192.168.1.100:40555。注意这里的40555不是调试端口而是配对端口只在配对期间临时有效。电脑上命令行执行adb pair 192.168.1.100:40555执行后会提示输入配对码把手机屏幕上的6位数字输进去回车。看到Successfully paired to 192.168.1.100:40555就说明配对成功了。这一步有几个非常实际的经验配对码窗口很短手机屏幕上如果弹出倒计时或者提示“配对码已过期”直接点重新生成。电脑和手机的时间要基本一致虽然一般不需要改但如果你手机开了“自动确定日期和时间”且网络不好时间偏差可能造成配对异常。同一时刻只配一台设备如果之前配过别的设备最好先清掉再重新配对。3.3 发起ADB连接配对成功后回到无线调试主界面看顶部显示的“IP地址和端口”这个才是真正用于调试连接的端口假设是192.168.1.100:39599执行adb connect 192.168.1.100:39599看到connected to 192.168.1.100:39599即成功。此时执行adb devices会看到设备的后面标注的是192.168.1.100:39599状态是device说明已经进入可调试状态。平时我习惯先跑一条命令验证一下adb -s 192.168.1.100:39599 shell getprop ro.build.version.release能返回Android版本号就说明连接没问题后面照着正常USB调试的方式随便折腾就行。3.4 配对成功后就一劳永逸了吗很多人以为配对成功之后以后每次自动连接就行。实际不是。Android 13的无线调试端口是动态的手机关闭再打开无线调试、或者Wi-Fi网络切换、或者手机重启之后顶部显示的端口可能会变。所以下一次连接前最好在手机上重新确认一下最新端口再用新的端口执行adb connect。这也正是“端口5555”方案存在的意义如果你能固定adbd的监听端口连接地址就永远是手机IP:5555不用每次去翻手机。4. 端口5555固定方案以及“永久开启”的几种有效思路4.1 为什么系统无线调试的端口会变Android 11的无线调试功能在设计上由系统Framework层管理adbd的启动参数和端口分配。每次开启无线调试系统会生成一个在特定范围内的随机可用端口注册到网络服务里供客户端发现。这样设计的好处是避免多个设备在同一网络里端口冲突坏处就是对于开发者来说地址不稳定记不住。如果只是偶尔用一次动态端口完全不是问题但如果每天都要连会在“打开手机开发者选项→无线调试→看端口→输命令”这套流程上花掉大量时间。所以把端口固定下来或者把连接过程脚本化能让日常调试顺滑很多。4.2 核心操作用adb tcpip 5555把adbd固定到5555端口经典的固定端口方法其实很简单先通过无线调试或USB调试建立一次连接然后执行adb tcpip 5555这条命令会通知手机里的adbd从USB模式切换到TCP/IP网络监听模式并监听在5555端口。此时无论系统无线调试界面里显示的端口是什么你都可以直接用手机IP的5555端口连接adb connect 192.168.1.100:5555实测下来只要执行成功即使之前是走动态端口连上的执行adb tcpip 5555之后5555端口也会开始工作。后续再次连接直接用5555即可。这里面有几个重要的前提和注意点必须已经建立过一次连接不管是USB方式还是无线方式。adbd只有在调试会话已经建立时才会处理tcpip命令。部分手机系统做了限制比如某些国产ROM在Wi-Fi环境下执行adb tcpip 5555后过一会儿5555端口会自动关闭或者收到系统无线调试模块的干扰。如果发现这种情况先确认“无线调试”和“USB调试”开关是不是都打开了必要时把无线调试关掉再执行一次adb tcpip 5555。不管系统无线调试界面端口怎么变执行完adb tcpip 5555后电脑端连接的地址永远写手机IP:5555就行了。4.3 手机重启后怎么让5555端口依然生效这里要直面标题里“永久”这个词。老实说Android原生系统里重启手机后除非你打开过无线调试开关否则adb tcpip 5555设置的状态不会自动恢复。原因在于tcpip命令只是临时改变adbd的运行模式重启后adbd重新按系统配置启动并不会记住之前的监听状态。想让重启后也能保持5555监听我试过几种方案按实际体验排个顺序第一种保持开发者选项里的无线调试开关打开然后在重启后重新执行一次连接。这种情况下无线调试功能会让adbd自动监听动态端口但5555不一定会恢复。你需要先看无线调试界面最新的IP和端口连接后再执行一次adb tcpip 5555端口就会重新回到5555。虽然不是完全自动化但比从头配一次省事。第二种借助自动化工具在开机后自动切到5555端口。我用过MacroDroid这类工具写一个“设备启动完成”触发器动作是执行Shell命令命令内容就是adb tcpip 5555。但这里有个前置条件手机需要root权限否则第三方应用没有权限直接操作adbd。如果你有root条件这是目前最接近“永久开启”的方案。第三种使用root方案修改系统属性和启动脚本。root之后可以修改/system/build.prop相关属性或者在开机脚本里通过service方式把adbd的监听端口固定下来。但这个方法需要Magisk模块或者定制ROM配合不适合大多数人而且不同设备差异很大我只能说“可行但不推荐普通用户折腾”。把话说透在非root的Android 13设备上很难做到重启后自动恢复5555端口监听。更为务实的思路是平时开着无线调试重启后重新走一次连接流程用脚本把“查端口、连接、设置5555”这个动作自动化。4.4 自动化连接脚本参考我自己日常用的是一个简短脚本作用是读取当前无线调试的端口、连接设备、然后把端口固定成5555。这里写个示意图帮助理解整个流程#!/bin/bash # 需要先用adb pair配对成功过 # 手动从手机无线调试界面获取当前IP和端口, 假设IP是192.168.1.100, 端口是39599 adb connect 192.168.1.100:39599 adb -s 192.168.1.100:39599 tcpip 5555 # 之后就可以用5555连接了 adb connect 192.168.1.100:5555 adb devices如果嫌手动填端口麻烦Android 13的无线调试界面还有QR码扫码配对功能配合Android Studio里自带的“Pair using QR code”可以省去输IP和端口的功夫。日常我会优先用这种方式把新设备加进来速度快还不容易输错长IP。5. 常见问题与排查实录5.1 问题速查表这里把我在Android 13上遇到的、以及身边同事踩过的典型问题汇总一下。现象可能原因解决办法adb pair报错Fail to connect to remote device配对端口填错、网络隔离、手机配对窗口过期确认端口是配对界面显示的“配对端口”重新生成配对码再试检查两台设备是否在同一局域网adb connect报错Connection refused用了尚未配对的IP和端口或端口已变化先配对再连接重新确认无线调试界面最新端口如果执行过adb tcpip 5555直接连5555配对成功后adb devices显示offline手机上未点击“允许USB调试”的授权弹窗或授权状态失效在手机上重新插一次USB线并允许调试或者无线调试界面里撤销配对后重来连接上之后过一会儿自动断开网络波动、Wi-Fi省电策略、路由器AP隔离确认网络稳定手机在Wi-Fi设置里给当前网络设置“保持连接”或重启手机和路由后重试adb tcpip 5555执行后5555端口仍连不上部分系统ROM对tcpip模式做了限制确认无线调试开关处于打开状态再执行一次adb connect 动态端口后重新执行tcpip 5555手机重启后5555端口失效Android原生设计如此adbd不记忆tcpip状态参考4.3的方案能root的用开机脚本不能root的每次重启后重新执行一次连接流程扫描二维码配对失败手机屏幕亮度低、二维码识别不到调高亮度让二维码完整显示手机和电脑时间同步后再试5.2 几个我实际踩过的坑第一个坑是系统无线调试端口和配对端口混淆。我第一次用Android 11的无线调试时就拿配对端口去连接结果连半天都连不上后来才发现界面上有两个端口一个“配对端口”用于输配对码一个“当前网络下的IP和端口”用于真正的调试连接。Android 13上依然是这样这个细节值得多提醒一遍。第二个坑是路由器AP隔离。有次我在办公室调试一台Android 13平板手机和电脑明明连同一个Wi-Fiping也通不了。查了半天发现公司网络的访客策略开了AP隔离无线设备之间禁止互访。这个问题不换网络环境基本无解换成手机开热点再让电脑连热点一分钟解决问题。第三个坑是手机Wi-Fi省电策略。小米、华为等部分手机默认Wi-Fi策略比较激进在屏幕熄灭或空闲一段时间后会断网或者限制后台网络导致ADB连接莫名断开。在开发者选项里把“保持Wi-Fi连接”和“始终保持网络连接”等选项打开能明显减少断连频率。第四个坑是Android 13的配对超时太短。很多时候不是操作错了而是手机屏幕上的配对码页面停留时间过短或者你在输配对码时屏幕上弹出了其他通知导致配对窗口被系统关闭。遇到这种情况直接点“重新生成配对码”重新来一遍不要一直拿旧码硬试。5.3 如果还是连不上试试这个排查路数当adb connect一直失败时我一般按下面这套顺序排查能解决九成的问题第一步adb kill-server然后把ADB服务重启一遍排除电脑端ADB状态异常。第二步在手机上把无线调试开关关掉再打开确保系统重新初始化网络服务。第三步手机端ping一下电脑的IP确认双向能通。第四步换一个端口重新adb connect排除端口冲突和动态端口变化。第五步如果还不行手机重启一次重新走配对流程。这套流程看起来简单但解决过我不少莫名其妙的问题。尤其是第一步很多人忽略因为adbserver长时间挂着状态可能已经错乱了重启电脑端的ADB服务往往立竿见影。6. 最后分享几条实战心得整体下来Android 13的无线ADB调试比早期版本多了一道配对流程安全性提升了但也让“开箱即用”的感觉打了折扣。如果你和我一样每天都要跟多台设备打交道我的建议是第一次配对用二维码扫码效率最高连接后第一时间执行adb tcpip 5555让端口固定下来然后写一个小的脚本把“连接5555端口”和后续常用命令封装在一起配合Android Studio或者常用命令行工具基本能做到“手机拿起来一条命令接上”彻底摆脱USB线的束缚。关于“永久”这件事我的个人看法是别太执着于完全免维护的永久方案非root设备上重启后重新走一遍连接流程是不可避免的。但在“每次都要插线”和“几十秒搞定无线连接”之间无线ADB已经是巨大的效率提升了。在实际项目里我之前调试一台Android 13的手机加上无线调试、scrcpy投屏以及后续的日志抓取全程没用过一次USB线整个体验流畅自然这才是无线调试该有的样子。希望这篇文章能帮你少走点弯路把环境一次配好剩下的时间都留给代码本身。