记录一下自己搭建Android手机的无线调试环境的一波三折!
ADB
安卓官网对此工具的介绍
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
守护程序 (adbd) :用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。
adb
包含在 Android SDK 平台工具软件包中。您可以使用 SDK 管理器下载此软件包,该管理器会将其安装在android_sdk/platform-tools/
下。或者,如果您需要独立的 Android SDK 平台工具软件包,也可以点击此处进行下载。
Android官网下载地址:SDK Platform Tools 版本说明
下载时选择最新版本即可,因为低版本的adb会导致设备离线,除了升级版本,随你怎么找其余解决方案应该都是无济于事的。。。(别问,问就是吃过亏!)
adb升级
网上说将下载的adb解压,将解压的文件夹platform-tools中的下面三个文件替换掉Android SDK\即platform-tools文件夹下的同名文件可。但是当时我的是没能ok的。
然后直接将platform-tools文件夹里面的所有文件替换也没能成功。😭
再然后添加环境变量。。。仍然不成功😭
再最后将图中三个文件复制一份到C:\Windows\System32里面就可以了。😄
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zJAzugfT-1655126235835)(?)]
我之前的是1.0.26,是不成功的,具体哪个版本也不确定。
adb 的工作原理
当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:
模拟器 1,控制台:5554 模拟器 1,adb:5555 模拟器 2,控制台:5556 模拟器 2,adb:5557 依此类推
如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。[//]: # (引自Android官网)
来张图演示下就是:
adb命令简介
命令 | 简介 |
| 查看adb版本信息 |
| 启动adb服务进程 |
| 杀死adb服务进程。 |
| 切换到usb调试模式,通过usb数据线来通信。 |
| 让设备在 5555 端口监听 TCP/IP 连接。 |
| 连接指定的ip设备。 |
| 断开连接的ip设备。 |
| 进入Android(基于Linux)系统的shell。 |
| 退出Android(基于Linux)系统的shell。 |
| 设置adb服务端口为5555, 打开adb网络调试功能。 |
| 表示打开adb的usb调试功能。 |
搭建步骤
前提:adb服务端(电脑)与Android设备处于统一局域网
1、打开手机的无线调试,位于设置—>开发者选项里面。开发者选项一般默认隐藏了,一般(我的)打开设置里面的关于手机—>然后猛戳版本号!或者设置—>高级设置—>开发者选项。找到无线调试,打开。
2、手机通过usb接入电脑,打开命令行,输入adb devices
查看当前usb设备(手机)是否在线。
3、设置设备的端口为5555
4、让设备监听5555端口的tcp连接
5、通过ip连接设备,ip是手机的ip,可以在wifi里面查看当前连接wifi的详细信息。
6、查看是否ok,ok就拔掉usb。
7、但是,不可以呢。。。😭
问题分析
沉下心来,分析分析。
操作系统一般不会有问题,有问题就起不来了。。。
adb软件应该也没问题!
AS依赖的是SDK中的adb,应该也没问题!
都没问题,那就应该是升级的问题了。升级时配置了环境变量都不行,这是不科学的,那么肯定还有什么遗漏的,并且执行是优于环境变量的。对,肯定是这样的,我太特么聪明了。我记得C:\Windows\System32里面将那三个核心文件复制进去就行了,但是似乎只是那里面那个adb软件成功连接手机了,而as所认识的那个软件并没有成功连接手机,所以在C盘搜索关键词adb,终于在C:\Windows里面找到了坏蛋所在。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v5YZPbOU-1655126235851)()] 在这个目录下打开命令行查看版本。
果然,接下来就是删掉他。连同C:\Windows\System32里面的一起删除,让其走环境变量指定的adb。再次查看版本。搞定,重复上述连接操作,再次实验。
验证:拔掉usb后只有一个无线的连接设备
再进入as查看,能找到设备,成功!