☰
ADB 环境搭建与驱动安装全攻略:从 USB 调试到 adb devices 故障排查
2026/10/1 1:05:29 网站建设 项目流程

不少刚接触安卓开发、刷机或者玩机的人,第一道坎不是代码,也不是刷机包,而是卡在 ADB 环境上。我见过太多人下载了平台工具,手机插上电脑却一点反应都没有,设备管理器里要么不识别,要么显示一个黄色感叹号,最后只能到处找“一键安装驱动”的软件,装完还是一堆问题。这篇东西我就把自己这几年反复装 ADB、打驱动、处理各种识别异常的经验完整写出来,涵盖 Windows、macOS 和 Linux,重点放在 Windows 上,毕竟绝大多数人玩机用的都是 Windows。内容会从工具选择、驱动安装、连接调试到高频命令逐层展开,照着做基本不会再被环境问题卡住。

1. 先搞清楚 ADB 到底是个什么东西,为什么总在“装”这一步翻车

ADB 的全称是 Android Debug Bridge,翻译过来叫安卓调试桥。名字里有“桥”这个字,非常形象——它就是你电脑和安卓设备之间的一座双向通道。数据既可以由电脑推给手机,也可以由手机拉回电脑,而且这个通道不只是传文件,还能执行 shell 命令、安装卸载应用、抓取日志、模拟点击和输入事件,甚至可以改变设备的运行状态。

但是桥要搭起来,有四个环节缺一不可:

  1. 电脑端有 ADB 可执行程序(adb.exe 或 adb 二进制文件)
  2. 设备端开启了“开发者选项”中的 USB 调试开关
  3. 系统识别到了这台设备,并且加载了正确的 USB 驱动
  4. 电脑端和设备端的 ADB 版本、协议能够互相匹配,认证通过

大多数人一上来就查“ADB 怎么安装”,实际只是在执行第 1 步,下载了一个 adb.exe,然后双击运行,发现界面一闪而过,或者命令提示符报“不是内部或外部命令”,就彻底懵了。然后又开始折腾第 3 步驱动,找了一堆“驱动精灵”“驱动人生”之类的软件,装完发现手机还是无法识别。真正的问题往往出在环节错乱——驱动不是装得越全越好,ADB 程序也不是放进 C 盘根目录就行,每一步都有它自己的逻辑在里面。

先说一个核心概念:很多新手分不清“ADB 程序”和“ADB 驱动”的区别。我遇到过有人把 adb.exe 当作驱动来安装,也有人把驱动软件当作调试工具来使用。这两个东西完全是两码事:

  • ADB 程序:一个可执行命令行工具,跑在你电脑上,它的任务是发出指令、接收结果
  • ADB 驱动:一段系统级的驱动程序,跑在内核层面,它的任务是让操作系统识别并正确连接你的设备

打个比方,ADB 程序是翻译官,ADB 驱动是电话线和信号基站。翻译官只会说话,但如果没有电话线把声音传过去,对面根本听不到;反过来电话线铺好了,没有翻译官,你也组织不出一句像样的指令。所以正确顺序是:先装好线(驱动),再启用翻译官(ADB 程序),最后确认两边能通话(adb devices 验证)。

2. 正确获取 ADB 工具:不要再去搜索引擎找乱七八糟的下载站了

2.1 唯一推荐来源:Google 官方 Platform Tools

获取 ADB 工具这件事,我只推荐一个来源:Google 官方的 Android Studio 下载页里的 Platform Tools 压缩包。这个包的地址是 https://developer.android.com/studio/releases/platform-tools ,进入后找到 Downloads 区块,里面有对应 Windows、macOS、Linux 三个平台的压缩包。点击下载即可,通常几 MB 到十几 MB 大小。

有人会问,为什么不用国内网友打包的“一键安装版”?我的回答是,想省事反而容易出大事。网上的所谓 ADB 一键安装包,里面经常捆绑旧版本、自带损坏的驱动脚本,甚至有人往里面塞过修改过的 adb.exe——表面功能正常,但是会在后台执行不明操作,这在安全圈里已经不是新鲜事了。ADB 本身权限极大,它通过 USB 通道可以执行任何 shell 命令、安装任意应用、读取设备文件,如果这个程序的二进制被植入后门,相当于你把整个设备的钥匙交给了陌生人。

所以我的建议很朴素:用官方包,断掉一切风险源。而且官方包还有一个好处——自带当前最新的 ADB 协议版本,和 Android 14、15 及以上版本的设备兼容性最好。

2.2 解压与目录结构:理解你下载的东西

下载得到的压缩包名字一般是platform-tools_r35.0.2-windows.zip这种格式,解压后得到一个platform-tools文件夹,里面核心文件有这些:

文件作用
adb.exeAndroid 调试桥主程序
AdbWinApi.dllADB 依赖的动态链接库,和 adb.exe 同目录,不能删
AdbWinUsbApi.dllUSB 相关动态链接库,同样不能删
fastboot.exe刷机模式专用工具,和 ADB 配合使用
libwinpthread-1.dll一些版本需要的线程库

这里一定要强调:adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll 这三个文件必须处于同一目录。很多人遇到双击 adb 报错提示找不到 DLL,就是因为只拷贝了 adb.exe 出来,忽略了两个 DLL 文件。所以不要自作聪明只拿 adb.exe 放到 C:\Windows\System32 下,最好就是把整个platform-tools文件夹解压到一个固定位置,比如C:\adb或者D:\android\platform-tools,之后不再移动它。

macOS 和 Linux 下解压后直接给 adb 二进程设置可执行权限即可,macOS 用户可以直接把 platform-tools 文件夹放到/Users/你的用户名/development/下,Linux 用户一般放到~/android/platform-tools。

2.3 配置环境变量:让系统全局找到 adb

解压完成之后,如果照常用 Win+R 输入 cmd,然后敲 adb,大概率会得到“不是内部或外部命令”的错误提示。原因很简单——系统不知道 adb.exe 在哪个路径下,它只会在当前目录、PATH 环境变量包含的目录里找可执行文件。所以第二步就是把 platform-tools 目录加进系统环境变量。

Windows 上的操作路径:右键“此电脑” -> 属性 -> 高级系统设置 -> 环境变量 -> 在“系统变量”区找到 Path,双击编辑,然后“新建”,粘贴你的 platform-tools 绝对路径,比如C:\adb,保存之后重新打开一个 cmd 窗口,再输入adb version验证。

注意一个隐藏坑:编辑完系统环境变量后,之前已经打开的 cmd、PowerShell、终端窗口都不会自动刷新环境变量,必须重新打开一个窗口。验证方式很简单,输入adb version,能看到类似Android Debug Bridge version 1.0.41的输出就说明配置成功。

macOS 上配置环境变量的方法是在~/.zshrc里追加一行:

export PATH=$PATH:/Users/你的用户名/development/platform-tools

然后执行source ~/.zshrc刷新。Linux 同理,改~/.bashrc或~/.zshrc。

3. 驱动安装全解:不同设备、不同芯片,对应的方案完全不一样

这是整篇教程里最核心、也最容易让人崩溃的部分。我直接给出一个结论:绝大多数识别失败,不是因为没装驱动,而是装了错误型号的驱动。不同品牌、不同 SoC 芯片、不同 Android 版本的设备,在 USB 驱动层面的表现方式完全不同。

3.1 先区分两种设备类别

插上线后,设备管理器里出现的情况可以分成两大类:

  • ADB Interface 类设备:识别为一个“Android Composite ADB Interface”或者带 ADB 字样的设备,这种状态下说明驱动已经基本正确,后面只需要授权和版本匹配
  • Unknown Device 或其他设备:显示为“未知设备”、黄色感叹号,这种情况下需要安装正确驱动

识别成 unknown 不代表没驱动,很多人插上老款华为手机、vivo 手机,在设备管理器里看到的是带感叹号的“USB 输入设备”或者“USB Composite Device”,这时候根本不是缺“ADB 驱动”,而是缺设备厂商的 USB 驱动(通常和手机助手软件的驱动打包在一起)。

3.2 新设备通用方案:Google USB Driver

如果你的手机是近几年的主流机型,Android 版本在中高版本以上,最省事的方式是安装 Google USB Driver。这个驱动位于 Android SDK Manager 里,如果你下了完整的 Android Studio,在 SDK Manager 的 Extras 里可以勾选下载。但大多数人不装 Android Studio,所以我更推荐直接去 Android 开发者官网下载驱动压缩包。

Google USB Driver 下载地址:https://developer.android.com/studio/run/win-usb

下载后是usb_driver_r13-windows.zip之类的压缩包,解压后是一个usb_driver文件夹。在设备管理器里右键叹号设备 -> 更新驱动程序 -> 浏览我的电脑以查找驱动程序 -> 指向刚才解压的 usb_driver 文件夹,确认安装。

需要注意,Google USB Driver 只提供谷歌原生兼容的 ADB 接口,很多国产品牌会对 VID 做特殊处理,所以不一定指定到该文件夹就一定能认出来。

3.3 各家品牌驱动方案速查

结合我自己的实测和从网上整理的常见问题反馈,列出以下品牌方案表。这里说的驱动文件通常在你安装对应品牌手机助手软件时会自动解压到系统里,或者你想干净一些,也可以去官网单独找 USB 驱动下载。

品牌驱动方案备注
华为/荣耀安装华为手机助手(HiSuite)时自动安装底层驱动老款设备需要在拨号盘输入*#*#2846579#*#*进入工程菜单,打开“USB 调试”相关选项
小米/红米小米手机助手或小米 USB 驱动应用MiUI 设备在设置里开启 USB 调试,插线后默认会对设备进行授权确认
vivo/iQOOvivo 手机助手或 vivo USB 驱动vivo 部分机型对驱动要求严格,插线后手机上需要选择“传输文件/Android Auto”模式
OPPO/一加OPPO 手机助手(OPhone 助手)或通用 ADB 驱动注意新版 ColorOS 默认需要进入开发者模式后开启“USB 调试”和“禁止权限监控”
三星Samsung USB Driver for Mobile Phones三星官方提供独立驱动包,在开发者官网搜索 Samsung USB Driver 下载,否则无法识别
索尼Sony PC Companion 或通用 Google 驱动新版设备通用性较好
摩托罗拉Motorola Device Manager老款设备建议使用官方驱动
传音/小众品牌先试通用 Google 驱动,再试联发科方案多数使用 MTK 芯片,见下文

如果你实在不想下载那么多助手软件,也有一个通用的做法:很多国产手机在开发者选项里开了“USB 调试”后,插线仅选择“仅充电”模式就会出现设备,此时在设备管理器里更新驱动指向 Google USB Driver,往往就能识别出 ADB 接口。关键是:不要插线后默认选“传输文件(MTP)”,这个模式有时会导致驱动接口优先级错乱。

3.4 特殊芯片方案:MTK 和展讯

联发科(MediaTek)芯片的设备是最容易出驱动问题的。如果你在设备管理器里看到设备名带有MediaTek、DA、PreLoader字样,那不是普通 ADB 驱动能搞定的,需要安装联发科 USB 驱动(MTK USB Driver)。这类驱动常见版本是MTK_Driver_Auto_Installer,或者MediaTek USB Port驱动。不过要注意,此类 MTK 驱动主要是为线刷和底层工作服务的,和 ADB 调试驱动往往是两套。

展讯(Spreadtrum/UNISOC)方案的设备较少,但电视盒子、一些山寨平板会用到。需要安装 Spreadtrum USB Driver,这类驱动通常随刷机工具附带。

3.5 通用 ADB 驱动替代方案:OEM 打包驱动

如果你已经被品牌和芯片版本搞到不耐烦,还有一个“老司机”方法:下载知名第三方整合的 ADB 驱动包,比如“Universal ADB Driver”或者带签名工具的整合包。这个方案的最大优势是包含绝大多数品牌的 VID/PID 列表,安装后设备管理器能直接识别出 ADB 接口。

但必须提醒:这类驱动包的来源复杂,请务必到信誉相对好的论坛或开源仓库下载,下载后先用杀毒软件扫一遍再安装。我个人的态度是:“能用官方就用官方,除非老设备实在找不到官方驱动,再退而求其次。”

3.6 驱动安装后的验证方法

驱动装没装好,不能只看软件提示“成功”,必须以设备管理器显示为准。连上手机后,打开设备管理器,展开“便携设备”或“ADB 接口”相关节点,看到设备名中带有Android、ADB Interface字样且无黄色感叹号,才说明驱动正确加载了。

如果是 Windows 上,识别结果应该在设备管理器里长这样:

Android Phone └── Android Composite ADB Interface

有的设备会显示为ADB Interface或Android ADB Interface,都算正常。如果它出现在“其他设备”里,还叫ADB Interface,说明是后端驱动加载失败了,右键更新驱动,或删除设备后重新扫描硬件改动试试。

4. 让设备真正进入调试状态:开发者模式、USB 调试与授权

驱动装好只是基础,真正连接还需要设备端配合。很多人就是栽在这一步——电脑上 adb 程序、驱动都准备好了,adb devices却还是看不到设备,或者在手机上弹了一个“是否允许 USB 调试”的窗口,手忙脚乱点了取消,之后就再也连不上了。

4.1 开启开发者选项

不同品牌的进入方式略有差异,但多数在“设置 -> 关于手机 -> 版本号”里连点 7 次,屏幕提示“您已进入开发者模式”即可。老款华为/荣耀设备可能是在“设置 -> 系统 -> 关于手机”里连点版本号,小米/红米则是连续点击“MIUI 版本”,vivo 是点击“软件版本号”,也有些 ColorOS 设备需要点击“版本号”而非“Android 版本”。

然后回到设置主菜单,新的“开发者选项”入口就出现了。进入后找到“USB 调试”,打开它,部分设备还有个“USB 安装”之类的选项,建议也一并打开,否则后面安装 apk 时会拦截。

4.2 插线后的模式选择与授权窗口

充电、数据传输、MTP、RNDIS——这几种 USB 模式一定要有所了解。插上线后,从手机顶部下拉通知栏,选择 USB 配置:

  • 仅充电:有些设备在这种模式下反而更容易进入 ADB 接口,因为系统会优先加载 ADB 功能
  • 传输文件 / MTP:最常用的模式,大部分设备在这个模式下 ADB 也能正常工作
  • 传输照片 / PTP:部分老设备建议选择此模式再试
  • MIDI / RNDIS:很少会用到,遇到无法识别时可以作为备选测试

最佳策略:先把 USB 模式选成“仅充电”或“传输文件”,然后看手机屏幕是否弹出授权对话框,若弹出,勾选“始终允许使用这台计算机进行调试”,然后点允许。

adb devices

第一次输入该命令时,设备状态会显示为unauthorized。这是正常的——Android 设备需要你物理确认授权。检查手机屏幕上的弹窗,点“允许”之后重新执行adb devices,状态就会变为device。

如果你手速太快已经点了拒绝,或者弹窗一闪而过没看清,解决办法是:在开发者选项里找到“撤销 USB 调试授权”,点击后重新插拔 USB 线,再次输入adb devices,重新授权。或者直接执行:

adb kill-server adb start-server

让服务重启后重新请求设备授权。

4.3 常见场景:电视盒子、模拟器和游戏机

ADB 不只在手机上用,电视盒子、模拟器、智能电视上也是高频应用。这里列几个容易踩坑的场景:

  • 夜神/雷电模拟器:这类模拟器自带一个 adb.exe,如果你用系统全局的 adb 连接,默认端口对不上。夜神模拟器的 ADB 端口是 62001,雷电模拟器常见端口是 5555。连接方法是:adb connect 127.0.0.1:62001,如果报连接失败,在模拟器设置里看当前 ADB 端口是多少,换对应端口连接即可。有时候模拟器会提示“adb 掉线”,那是因为它自带的 adb 版本和你的版本不一致,把模拟器安装目录下的 adb.exe 替换成你的新版 adb.exe 就能解决。

  • 老款创维/海信电视:不少电视需要先在工厂菜单或者特定应用里打开 ADB 开关,有些电视的 ADB 开关藏在“设置 -> 关于 -> 版本号连点”里,有些则需要安装当贝市场或特定 apk 来打开。电视系统版本较老时可能只支持 Android 5/6,adb 版本太新反而连接失败,这时候可以换一个旧版 adb(比如 1.0.32 或 1.0.36)试试。

  • vivo 设备的精简列表操作:vivo 手机在官方系统中限制了部分应用无法卸载,但可以通过 ADB 命令执行pm uninstall --user 0 包名实现“冻结应用”,后续如果想恢复,可以在命令行窗口执行pm install-existing 包名或者恢复出厂设置。注意,精简系统应用有风险,只建议把明显无用的内置应用冻结,不要动系统核心应用。

4.4 网络 ADB 与端口占用问题

有些场景下你不想用 USB 线,比如使用无线调试。Android 11 及以上系统支持“无线调试”功能,不需要 root 就能开。操作步骤:开发者选项 -> 无线调试 -> 打开,然后记住界面里显示的 IP 地址和端口(通常是六位随机端口,比如 192.168.1.100:38271),电脑端执行:

adb pair 192.168.1.100:38271

配对成功后,还需要一个连接步骤,界面里点“使用配对码配对设备”会出现六位配对码,在执行adb pair后按提示输入即可。配对成功后执行:

adb connect 192.168.1.100:38271

老版本 Android(如 Android 10 及以下)则是先在手机端开启“网络调试”或通过 USB 连上后执行:

adb tcpip 5555 adb connect 192.168.1.100:5555

这里有个高发坑:电脑上有多个 adb 版本并存(比如淘宝刷机工具、手机助手、模拟器自带都各有一份),执行adb connect时用的是旧版本,导致死活连接不上。我之前排查过一个用户的问题,他的系统里存在三个 adb.exe,命令路由到了一个 1.0.26 的老版本,换了新版之后秒连。所以遇到连接异常,第一件事是确认当前命令行里执行的 adb 到底来自哪个目录。

5. 故障排查全链路:从感叹号到 unauthorized,逐个击破

这一节把常见的 ADB 连接失败场景汇总成一个排查链路,希望你遇到问题时可以按顺序操作,而不是东查一个教程西试一个方法。

5.1 排查链路总览

我给这个问题画一个排查顺序,按层级从底层到高层逐步推进:

  1. 换一根数据线——线的问题比想象中常见得多,很多杂牌线只能充电不能传数据
  2. 换一个 USB 接口——优先用主机背面的 USB 2.0/3.0 口,不要用前置面板
  3. 设备管理器看驱动状态——确认没有黄色感叹号
  4. 手机端确认开发者选项和 USB 调试开启
  5. 插拔线后看手机是否弹出授权窗口
  6. adb kill-server然后adb devices重新检测
  7. 查电脑上是否有多版本 adb 冲突
  8. 试不同 USB 模式(仅充电、传输文件等)

这八步覆盖了九成以上“连不上”的场景。

5.2 adb devices 输出详解

成功连接后,adb devices输出一般是这个样子:

List of devices attached RF8N20ABCDE device

状态列常见三种:

状态含义处理方式
device正常状态,代表已连接且已授权可以直接使用所有 adb 命令
unauthorized设备已识别,但未授权看手机弹窗,允许即可;或撤销授权后重试
offline设备曾经连接过,但当前处于离线状态插拔线,重开调试,或adb kill-server后重新连

有一个特殊情况:设备序号那一列如果显示????????????而不是正常的十六进制序列号,说明驱动识别层面已经出问题了,即使状态显示 device 也最好不要依赖,优先解决驱动问题。

5.3 adb unauthorized 到底怎么解决

这个词在上热搜词里出现了,说明是高频问题。unauthorized产生的根本原因就是设备处于“已连接但未授权”的状态,通常在首次连接时出现。

解决流程如下:

  • 确保手机屏幕处于解锁状态,不要锁屏
  • 看是否有“允许 USB 调试吗?”弹窗,有就直接允许并勾选“始终允许”
  • 如果没弹窗,在开发者选项里执行“撤销 USB 调试授权”,然后重新插拔线
  • 如果还未弹窗,把 USB 模式切换一下(比如从传输文件切到仅充电再切回来)
  • 执行adb kill-server和adb start-server重启 adb 服务

如果以上都无效,还有一个少见但确实存在的原因:手机时间和你电脑时间相差太大,导致 RSA 密钥验证失败。把两边时间校准到接近状态再试一次。

5.4 驱动识别正常但设备列表为空

这种情况通常让人抓狂:设备管理器里面明明能看到Android Composite ADB Interface,设备也没有红色感叹号,但adb devices就是空列表。可能原因几乎可以锁定在USB 模式。

我遇到过一台老款 vivo 手机,只有在“仅充电”或者“传输照片(PTP)”模式下才能被 ADB 正确枚举,一旦切到“传输文件(MTP)”,设备管理器里的 ADB Interface 就消失。所以遇到设备列表为空时,去切换手机端 USB 配置,每个模式都试一遍。

还有一个原因是 32 位系统的兼容性问题,极老版本的 adb(1.0.26 之类)适合老系统,如果你在 Windows 10/11 上用的是远古版本 adb,也有可能出现枚举成功但协议不匹配。这时候升级到最新 Platform Tools 即可。

5.5 Windows 下驱动安装失败:数字签名问题

Windows 7 或者某些精简版 Windows 10 系统上,安装老型号设备的驱动经常会遇到“驱动程序数字签名”问题,系统直接拒绝安装。处理方法:

  • 重启电脑,开机时不停按 F8,进入“禁用驱动程序强制签名”模式
  • 在高级启动选项里选择“更改高级启动选项 -> 立即重启 -> 疑难解答 -> 高级选项 -> 启动设置 -> 重启 -> 按 7 或 F7 选择禁用驱动程序强制签名”

注意这个禁用状态只对当前启动有效,下次重启后自动恢复。如果需要长期安装驱动,建议采用官方签名的驱动包,而不是强行关闭签名验证。

5.6 电视/盒子的 ADB 连接特殊问题

电视盒子连接 ADB 时有一点和手机完全不同:很多盒子默认没有打开“USB 调试”的入口,需要先用遥控器进设置打开“开发者选项”,部分型号还要在“关于”里连点“版本号”来激活入口。如果连开发者选项都没有,那可能要用无线 ADB 方法:确保电视和电脑在同一局域网,用电视 IP 加端口连接。

创维电视部分老型号需要在“设置 -> 通用设置 -> 关于”里连续点击“版本号”多次,或者下载创维电视专用的 ADB 开关应用(比如当贝市场里搜 ADB 开关)。注意电视系统若是 Android 4.x/5.x,新版 adb 的pair配对方式不适用,直接用adb connect IP:5555的方式。

5.7 使用第三方工具辅助排查:USB Device Tree Viewer

如果前面都排查完还不行,我建议你用USB Device Tree Viewer或UsbTreeView这类工具,查看电脑上真实的 USB 设备枚举树。它能显示每个 USB 端口的设备描述符、VID、PID、驱动是否加载、设备是处于正常工作状态还是故障状态。

这个工具对排查 Serial/Composite 设备特别有用。比如你在树里看到设备显示Device Busy或者Device has no driver loaded,就知道问题出在驱动加载层;如果看到整个节点都不存在,说明 USB 链路本身没有建立,那就该换线换口了。这种工具信息量大,但看多了你会有一种“开了天眼”的感觉——以后遇到任何 USB 识别问题都不用瞎猜了。

6. 驱动和连接搞定之后,日常最常用的 ADB 操作

环境搭好不是为了看adb devices一行的,下面这些命令才是让你真正感受到“调试桥”价值的高频用法。

6.1 安装和卸载应用

# 安装 app,-r 代表覆盖安装,-t 允许安装测试包 adb install -r -t 你的应用.apk # 卸载应用,后面是包名 adb uninstall com.example.package

有些应用没法直接卸载,尤其是系统预装应用,可以尝试:

# 冻结用户应用(Android 5.0 以上) adb shell pm uninstall --user 0 com.example.package # 恢复被冻结的应用 adb shell pm install-existing com.example.package

vivo 设备精简列表操作就是依赖这种方法,比如很多用户会冻结内置浏览器、视频、游戏中心等包名。注意一定不要冻结com.bbk.launcher2这种桌面应用,否则可能引起桌面崩溃。

6.2 抓取 Logcat 日志

这是开发调试和排查闪退的必备技能:

# 实时输出日志 adb logcat # 输出带时间戳、按优先级过滤(V/D/I/W/E) adb logcat -v time *:E # 清空旧日志后重新抓取,并保存到文件 adb logcat -c && adb logcat -v time > app_log.txt # 抓取特定进程的日志 adb logcat --pid=$(adb shell pidof com.example.package)

抓日志时注意别忘了一个操作:闪退问题通常需要先adb logcat -c清空缓存,然后复现一次崩溃,再抓回来,否则日志里全是无关信息。另外如果设备上多个进程同时打日志,输出会非常吵,用包名过滤或 pid 过滤是更高效的方式。

6.3 模拟低效不弹窗的操作:屏幕点击、滑动、输入

# 模拟点击坐标 500, 1200 adb shell input tap 500 1200 # 模拟滑动,从 (500, 1500) 到 (500, 500),耗时 300ms adb shell input swipe 500 1500 500 500 300 # 输入文本(仅支持 ASCII,中文需借助 ADBKeyBoard 或剪贴板方案) adb shell input text hello_world

这里要注意,坐标是设备物理像素坐标,不是 dp 也不是 app 内坐标。如果要做脚本自动化,最好先adb shell wm size查看当前分辨率,或者用adb shell wm density看屏幕密度,再换算坐标。不同分辨率设备上坐标不通用,这也是为什么很多自动化脚本只能针对某一台设备调优。

6.4 设置屏幕刷新率

相关热搜里有“adb 命令设置屏幕刷新率”,这个功能适合部分支持高刷但系统没给出明确开关的设备:

# 查看当前支持的显示模式 adb shell dumpsys display | grep -E "mSupportedModes|refreshRate" # 将刷新率强制设置为 90Hz(需要设备硬件支持) adb shell settings put system peak_refresh_rate 90 adb shell settings put system min_refresh_rate 90 # 恢复自动 adb shell settings delete system peak_refresh_rate adb shell settings delete system min_refresh_rate

不是所有设备都支持这条命令,部分厂商定制系统会封掉这个设置入口。实测小米、一加部分机型上可用,其他品牌建议先查dumpsys display确认支持的刷新率列表,再决定要不要改。

6.5 禁用应用联网

“adb 禁止应用联网”也是高频需求,多数人想用这个来控制某些应用后台耗电或自动更新。正统做法是通过 iptables 限制,但没 root 的情况下最常见的方案是:

# 查看应用 uid adb shell dumpsys package com.example.package | grep userId # 然后通过 iptables 限制该 uid 的联网(需要 root) adb shell su -c "iptables -A OUTPUT -m owner --uid-owner 10034 -j REJECT"

没有 root 的设备,替代方案就是进入系统“设置 -> 应用 -> 该应用 -> 流量使用情况”手动关闭后台数据,或者在应用内部设置里关掉自动播放、自动更新之类的选项。ADB 不提供直接管理联网权限的命令,这一点要提前有预期。

6.6 查看设备信息与文件操作

# 查看设备型号、Android 版本 adb shell getprop ro.product.model adb shell getprop ro.build.version.release # 查看屏幕分辨率 adb shell wm size # 拉取设备文件到电脑 adb pull /sdcard/Download/xxx.mp4 D:\backup\ # 推送电脑文件到设备 adb push D:\backup\xxx.apk /sdcard/Download/

文件操作权限在 Android 11 及以上的设备上受到分区存储限制,比如直接拉取/data/data/包名底下的私有目录大概率会报权限错误,除非是 root 过的设备。遇到权限不足时先考虑adb shell run-as 包名或者 root 方案。

7. 多设备管理与进阶技巧:不折腾纯粹就是懒得看命令

当电脑上同时插着两三台设备,或者同时连着真机和模拟器时,之前的命令全部失效,因为默认 adb 不知道该往哪台设备发送指令。多设备管理的三件套:

# 列出所有设备 adb devices -l # 指定序列号执行命令 adb -s 设备序列号 shell input tap 300 500 # 指定模拟器端口执行命令 adb -s emulator-5554 install test.apk

序列号从哪里看?adb devices第一列就是。真实设备是厂商名加一串十六进制的字符串,模拟器则是emulator-端口号。多设备时建议每次操作前都要确认序列号,不然很容易出现“我在设备 A 上输入了内容,却跑到设备 B 上执行了”的乌龙。

还有一个进阶技巧叫无线 ADB,但很多教程没解释为什么连不上——当手机和电脑不在同一网段,或者路由器开启了 AP 隔离,无线 ADB 会直接失败。解决方法是让手机和电脑连同一个 Wi-Fi,并且网段一致,比如电脑是 192.168.1.x,手机也必须是 192.168.1.x,中间不能隔着多层 NAT。如果路由器开了“AP 隔离/无线隔离”功能,需要先关掉,或者把手机和电脑接在同一台交换机/路由器下。

最后说一个每个经历过 ADB 环境问题的人都会同意的观点:很多人以为装 ADB 是为了开发,其实不是——它更像是一把打开安卓设备完整权限的钥匙。电视上装第三方应用、手机上冻结无用的系统应用、抓日志反馈 bug、备份数据,都是靠这把钥匙实现的。如果哪天你发现自己的设备突然连不上电脑,不要急着重装驱动,先想想你是不是刚升级过 Android 系统、换过数据线或者改过 USB 模式,九成问题都出在这三件事上。把基础原理摸透,遇到再多新设备的连接问题,你都能靠同一套排查思路解决。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询