Mac 上的 ADB:安装 Platform-Tools 并检查设备连接
介绍如何在不安装完整 Android Studio 的情况下安装 adb、检查工具路径、授权 USB 调试,以及区分 device、unauthorized 和空设备列表。
要在 Mac 上使用 adb,不一定要安装完整的 Android Studio。对于命令行操作,官方的 Mac 版 Android SDK Platform-Tools 软件包就已足够。如果您的 Android SDK 已由 Studio 管理,Google 建议通过 SDK Manager 获取 Platform-Tools,而不是再建立一个独立副本。
本指南依据 Google 文档编写,并非实际测试报告:这些步骤未在 Mac 和 Android 设备上进行验证。以下命令供您在自己的 Mac 上配合自己的设备执行;本文不包含命令执行结果或屏幕截图。
1. 选择一个安装来源
如果已经安装 Android Studio
打开 Tools > SDK Manager。在 SDK Tools 选项卡中选择 Android SDK Platform-Tools,然后点击 Apply 或 OK,并阅读许可条款。记下 Android SDK Location 的值:安装后的 adb 位于该 SDK 的 platform-tools 子目录中。
Google 文档中的 android_sdk/ 是您 SDK 目录的示意写法,并不是应原样粘贴到终端中的路径。不要假定 SDK 一定位于默认目录:应以 SDK Manager 显示的位置为准。Google 的 SDK Manager 使用说明。
如果只需要 adb
打开 Platform-Tools 官方页面,选择 Download SDK Platform-Tools for Mac,阅读 Android SDK License Agreement 条款并下载 ZIP 文件。解压后,将 platform-tools 文件夹存放在您选定的固定位置。不要运行 Windows 或 Linux 版本。
在终端中输入带有尾随空格的 cd ,将解压后的 platform-tools 文件夹从 Finder 拖入终端窗口,然后按 Return。这样就能进入实际目录,而无需套用他人的用户名或虚构路径。随后检查:
./adb version
前缀 . 表示“运行当前文件夹中的 adb”。文件存在于该文件夹,并不意味着不带前缀的 adb 命令就能通过 PATH 找到。进行初步检查时,无需将该目录添加到全局 PATH。
Google 提供可脱离 Studio 使用的独立命令行 ZIP 包;官方软件包按 SDK 条款分发,并非采用所谓“没有任何限制的免费许可证”。下载来源及条款。
OpenNavo 上的 Platform-Tools 条目汇集了该软件包的信息。截至本文编写时,该目录条目的推荐已暂停。这是 OpenNavo 的状态,并不表示 Google 已停止提供这些工具:Google 页面仍列有官方 Mac ZIP 包。本指南使用官方来源,不改变该条目的状态。
2. 确认您运行的是哪一份 adb
如果您希望在任意目录中运行 adb,请执行:
which -a adb
adb version
which -a adb 有助于查看在 PATH 中找到的各份副本;adb version 则显示所运行客户端的版本。将找到的路径与上一步选定的目录进行比较。这两项检查的作用不同:仅仅知道版本,并不能证明您正在使用所需的那一份安装。
如果提示找不到命令,请返回所选的 platform-tools 文件夹,并使用 .。后续执行本文中的命令时,也应将开头的 adb 替换为 .,例如 .。这种方式同样适用于通过 SDK Manager 安装的目录。
如果发现多份安装,请先确定您的 SDK 或工作流程需要哪一份。不要随意删除其他副本,也不要盲目改写 Shell 配置。adb 客户端会访问本地 TCP 端口 5037 上的共用服务器,因此,选择哪个客户端文件与已运行服务器的状态并不是一回事。对于本指南,始终使用选定的同一份副本即可。adb 的工作原理。
3. 通过 USB 连接您自己的 Android 设备
- 在属于您自己的设备上打开开发者选项,并启用 USB debugging / USB 调试。如果该部分处于隐藏状态,请按照 Google 关于启用开发者选项的说明操作;不同制造商的菜单项名称可能有所不同。
- 使用支持数据传输的线缆将设备连接到 Mac。解锁屏幕。
- 运行设备列表命令:
adb devices -l
- 查看设备本身显示的提示。Android 4.2.2 及更高版本会要求确认用于调试的计算机 RSA 密钥。仅在连接符合预期时,向您自己信任的计算机授予访问权限;不要在他人的计算机上保存永久信任。
- 确认后,再次执行
adb devices -l。
根据 Google 文档,macOS 无需额外的操作系统设置即可检测设备。不要套用 Windows 的 USB 驱动程序说明或 Linux 的 udev 说明。这并不保证任意线缆和任意设备都能正常工作。USB 连接与 RSA 授权。
devices 命令用于列出设备,-l 用于启用详细输出。adb tcpip 5555 命令并不列出设备,而是更改设备上服务的监听模式。本次 USB 检查不需要该命令,也不应执行它。adb 命令参考。
4. 解读结果,而不只是看有没有设备行
以下介绍的是各种状态,并非某一具体设备的测试结果。
| 您看到的内容 | 含义 | 接下来应检查什么 |
|---|---|---|
command not found |
Shell 未能按名称找到命令 | 进入选定的文件夹并检查 .;随后使用 . |
| 只有列表标题,没有设备行 | 本次查询未显示已连接的设备 | 检查连接、数据线、设备是否已解锁以及 USB 调试是否已开启;尝试其他完好的线缆或 USB 端口 |
带有 unauthorized 的一行 |
该连接尚未获得调试授权 | 查看手机已解锁的屏幕,并确认符合预期的 RSA 请求;如果没有提示,请重新连接 USB,然后再次检查列表 |
带有 device 的一行 |
设备已连接到 adb 服务器 | 核对序列号和型号;这不能证明 Android 已完全启动,也不能保证后续命令成功 |
带有 offline 的一行 |
设备未连接到 adb,或没有响应 | 检查连接和设备状态;不要将其视为授权成功 |
| 多行设备信息 | 检测到多个设备或模拟器 | 在执行后续命令前,明确选择所需设备 |
上述线缆和设置检查符合 Google 的 USB 连接建议。如果这些检查仍无法解决问题,请查阅设备制造商的文档;不要关闭 macOS 的安全防护,也不要尝试绕过手机授权。
Google 特别提醒:device 状态并不表示 Android 已完全启动并准备好执行所有操作。设备列表中的状态。
5. 如果有多个设备,请明确选择其中一个
从 adb devices -l 中复制目标设备所在行的序列号。要检查某个具体设备的状态,可以使用:
adb -s SERIAL get-state
SERIAL 是占位符:请将其替换为您自己设备的实际序列号,不要原样输入这个单词。如果从当前目录运行工具,请使用 .。这是一项状态查询,不会安装应用或修改文件。
参数 -s 用于选择具有指定序列号的设备。不要依赖列表中各行的顺序,尤其是在同时运行模拟器时。Google adb 指南中的设备选择说明。
6. 结束会话,避免保留不必要的信任
检查结束后,拔下线缆;如果不再需要 USB 调试,请将其关闭。如果您已允许该计算机今后继续调试,并希望撤销这份信任,请在设备的开发者选项中使用撤销 USB 调试授权的选项(如果提供)。其名称和位置因制造商而异;撤销操作也可能影响其他此前受信任的计算机。
仅仅关闭终端并不意味着撤销信任。不要为了本次检查而手动删除密钥和工具运行所需的文件。不要在截图或报告中公开序列号、密钥指纹及其他设备标识符。
简短问答
是否必须为了 adb 而安装 Android Studio? 不需要。Google 提供独立的 Mac 版 Platform-Tools 软件包。如果已经使用 Studio,继续交由 SDK Manager 管理工具会更方便。
为什么 . 能运行,而 adb version 不能? 前者直接指向当前目录中的文件,后者取决于 Shell 能否通过命令搜索找到它。按照本指南操作时,可以继续使用 .,无需修改全局设置。
device 是否意味着一切就绪? 它表示已与 adb 建立连接,并不保证系统已完全启动、应用能够正常运行,或接下来执行的任何命令都是安全的。
是否需要无线调试? 不需要,本 USB 使用场景不需要无线调试。本文不包含开放网络端口或进行无线连接的步骤。
来源与验证范围
- Google:SDK Platform-Tools 及 Mac 版下载。
- Google:Android Debug Bridge——授权、设备列表与设备选择。
- Google:SDK Manager。
- Google:连接实体设备与检查 USB。
- AOSP:adb 参考手册。
本文依据 Google 官方文档编写;未在 Mac 和 Android 设备上进行实际验证。本文不包含经过确认的性能结果、针对特定 macOS 版本的兼容性测试,也不包含声称已实际执行上述命令的屏幕截图。
参考来源
Navo 是 OpenNavo 的编辑署名。文章由 AI 协助、依据官方文档和 OpenNavo 目录撰写,注明信息来源,并说明步骤是否经过实际操作验证。