
简介面向Android开发者和系统维护人员的ADB命令行工具包聚焦设备调试、应用部署与屏幕解锁等常见场景可满足日常开发、自动化测试及忘记密码时的应急处理需求。包内共23个文件主要包含exe可执行程序、bat批处理脚本、dll运行库及说明文档涵盖adb、fastboot、sqlite3等核心组件压缩包仅1.88MB轻量便携。已有19047人浏览学习实用性强。借助该工具包用户可快速建立电脑与Android设备的连接实现文件推送/拉取、安装卸载应用、抓取logcat日志、模拟触摸操作并具备清除锁屏密码的应急能力帮助解决设备无法进入系统的问题。尤其适合需要批量管理多台设备或进行自动化测试的开发人员使用。1. adb 工具包设备连不上、预装应用删不掉时先别急着求图形工具很多设备问题用图形工具看是“玄学”手机提示 adb devices unauthorized助手直接摆烂电视盒子开发者选项里根本没有 adb 开关车机连了 WiFi 却一直转圈。真正能把这些黑匣子问题拆开的是 adb 工具包——Android Debug Bridge 的命令行集合。它解决三件事设备能不能被计算机识别能不能执行卸载、安装、设置类的操作能不能把日志和屏幕内容抓出来。适合做安卓电视盒子维修的、玩车机互联的、App 开发调试的也包括新手机到手只想解锁预装应用卸载限制的普通人。这份工具包不依赖安装器解压即用下文按“装环境、连设备、上命令、查坑”的顺序完整走一遍。2. 装好 adb绿色包解压、Path 配置与“不是内部或外部命令”的正面战场我一般建议把工具包固定放在 C:\adb而不是桌面或下载目录。理由有三个一是路径里没有空格命令行解析少一个变量二是后续写 bat 脚本引用方便不会因为路径带中文或空格中断三是 Windows 的 Path 环境变量拼接短路径出问题容易排查。macOS 用户不需要这套 Windows 包终端执行 brew install android-platform-tools 就能装好但如果你日常用 Windows 干活这份绿色包就是主力。2.1 工具包里这几个文件分别干什么打开工具包目录核心是几个可执行文件和 DLL。别小看 DLL有人把 adb.exe 单独拷出来用结果提示“由于找不到 AdbWinApi.dll”这是典型的缺文件问题不是路径问题。文件作用使用时机adb.exeAndroid Debug Bridge 主程序几乎所有 adb 开头的命令fastboot.exe刷机、进 bootloader 用的工具需要进 bootloader 模式时AdbWinApi.dllWindows 下 adb 的底层 API 支持adb.exe 运行时就依赖不可缺失AdbWinUsbApi.dllUSB 通信支持数据线连接设备时依赖adbkey / adbkey.pub本机 RSA 密钥对首次运行自动生成设备授权时用来建立信任关系搞清楚文件构成后第一件事不是接手机而是把环境变量配好。否则你辛辛苦苦把手机插上打开 cmd 敲 adb devices迎面就是一句“‘adb’ 不是内部或外部命令也不是可运行的程序或批处理文件”然后开始怀疑人生。这个报错在搜索里出现的频率极高九成是环境变量没配好跟手机、数据线一点关系没有。2.2 三行命令配好 Windows 环境变量先把整个工具包目录复制到 C:\adb确认里面有 adb.exe。然后以管理员身份打开命令提示符顺序执行下面的命令:: 临时使用只对当前窗口生效适合先验证 cd /d C:\adb adb version :: 永久配置把 C:\adb 追加到系统 Path需要管理员权限 setx Path %Path%;C:\adb /M第一条 cd 是进入工具包目录第二个 adb version 用来确认 adb.exe 能跑起来能看到版本号和 build 信息说明文件完整。setx 后面的 /M 表示写入系统级环境变量不带 /M 只写当前用户如果当前窗口是用管理员身份开的不带 /M 会写到管理员用户的环境变量里普通窗口依然找不到。配完必须重新打开一个 cmd 窗口setx 不会通知已开着的窗口刷新环境变量。验证就一条命令adb version输出正常说明 Path 已生效。这里有个隐藏坑setx 对超长 Path 有截断风险如果在已经塞了很多路径的机器上执行有可能把原有 Path 后半截吃掉。所以我在生产机器上更习惯用“系统属性 - 环境变量 - 编辑”手工加一行 C:\adb虽然多两步但对老系统、环境变量很长的机器来说最稳。2.3 “‘adb’ 不是内部或外部命令”的三种原因这个报错值得单独拆开。第一种是 Path 根本没配上只解压了没执行 setx第二种是配了但没重开 cmd旧窗口读的是启动时的环境变量快照第三种是配置写到了用户变量而当前 cmd 用管理员身份打开读取的是另一份系统环境变量。还有第四种隐蔽情况误把 adb.exe 放到了带空格的目录比如 E:\我的下载\adb tool路径拼接时引号位置错了。处理路径问题我有一套固定检查顺序:: 查看当前 cmd 到底能不能解析 adb where adb :: 查看当前 Path 是否包含 C:\adb echo %Path%where adb 能找到说明命令可用找不到就是 Path 没生效。echo %Path% 直接看当前窗口拿到的路径值如果里面有 C:\adb 但 where 找不到就是路径配置和当前窗口不同步重开窗口再试。如果 Path 里压根没有回到 2.2 重新配置。这套流程能解决九成以上的“不是内部或外部命令”剩下的就是 adb.exe 本身损坏重新解压工具包就好。3. adb devices 状态机先把驱动、USB 调试与 unauthorized 分清楚环境装完第一次插手机满怀期待敲下 adb devices结果大概率不是你以为的 device。别慌这个命令的输出就是设备的体检报告先读状态再动手。很多人一上来就重装驱动、换数据线结果折腾半小时问题根本不在那。3.1 读状态device / offline / unauthorized 分别意味着什么adb devices 的输出分两列左边是设备序列号右边是连接状态。状态有四种常见的每种对应的处理方式完全不同状态含义下一步device设备已授权且连接正常可以正常执行 adb 命令unauthorized设备连接了但主机未获得授权看手机屏幕点“允许 USB 调试”务必勾选始终允许offline驱动异常或 adb 服务状态不对重插数据线检查驱动或 adb kill-server 再 start-serverno permissionsLinux 下 udev 规则问题配置 udev 规则或改用 root 运行Windows 少见很多人在 unauthorized 状态下去重装驱动、换线折腾半天结果只是手机屏幕上有个弹窗没点。这是最常见的“无头苍蝇”式排错。想看到更多设备信息可以用 adb devices -l会多输出设备的型号、传输方式等字段比如 usb:1-3 表示物理 USB 口编号对于多设备同时调试时区分谁是谁很有用。拿到任何 adb 连接问题我第一句话都是先看手机屏幕有没有授权弹窗。特别是换了一台电脑插同一部手机一定弹窗因为信任关系是按“主机密钥 设备”绑定的换主机就相当于换了陌生人。3.2 USB 调试没开、驱动没装顺序反了就是翻车现场手机端必须先开“开发者选项”路径在“设置 - 关于手机 - 版本号连点 7 次”然后回到设置页找“开发者选项”打开“USB 调试”。这个动作没有技术含量但有个细节很多人忽略USB 调试打开后插线时要在通知栏把 USB 模式从“仅充电”切到“传输文件/MTP”。部分机型在仅充电模式下不枚举 ADB 接口adb devices 输出直接为空。驱动这块Windows 下判断标准很硬核打开设备管理器看有没有带感叹号的设备。出现“Android Composite ADB Interface”且没有黄色感叹号驱动就对了。如果能看到设备但显示感叹号右键更新驱动手动指向 adb 工具包里的驱动目录或 Google USB Driver 解压目录。这里插一句常被问的话adb 驱动需要 USB 调试模式吗需要。USB 调试不开设备不会暴露 ADB 接口驱动装上也是空气。所以顺序是先开 USB 调试再插线再看设备管理器最后 adb devices。顺序反了会得到一堆假象比如“设备已连接但无法识别”。驱动装好但状态还是不对就把 adb 服务重置一次adb kill-server adb start-server adb deviceskill-server 会把本机的 adb server 进程停掉start-server 重新拉起这个过程中会重新枚举所有 USB 设备顺带清掉一些僵尸连接。有些 Windows 机器上 adb server 因为上一次异常退出变成僵死状态不 kill 直接 devices 会一直显示 offline。3.3 unauthorized 反复出现授权残留与 RSA 密钥的真相最让人血压高的是 unauthorized 反复出现。现象是手机屏幕弹窗第一次点了允许也勾了始终允许但拔线重插后又变成 unauthorized。原因几乎都是本机 adbkey 和手机里存的指纹不匹配或者你删除过 C:\Users\你的用户名.android\adbkey或者手机端在开发者选项里点过“撤销 USB 调试授权”两边信任关系断了。解决要同时清两边的记录:: 先停掉 adb server避免它自动重连 adb kill-server :: 备份并删除本机密钥让 adb 下一次重新生成 ren C:\Users\%USERNAME%\.android\adbkey adbkey.bak ren C:\Users\%USERNAME%\.android\adbkey.pub adbkey.pub.bak :: 手机上进入开发者选项 - 撤销 USB 调试授权 :: 重新插线启动 adb server adb start-server adb devices删本机密钥后adb server 重启会自动生成一对新密钥。手机端撤销授权之后再插线会重新弹出授权框这时勾上“始终允许来自此计算机的调试”点确定基本一次通过。为什么非要两边一起清因为 adb 的信任是双向的手机记录“我信任哪台电脑”电脑记录“我的私钥是哪把”。只删一边另一边还在下次匹配不上就继续 unauthorized。图形化 adb 工具甲壳虫 ADB 助手之类也只是把这里的授权和连接封装成了按钮底层的 unauthorized 逻辑完全一样网页版 ADB 工具走 WebUSB首次连接同样要设备弹窗授权。命令行能过的它们不一定能过命令行卡住的它们一定也卡。所以别指望换个图形外壳能绕开授权问题先把状态机读明白。4. 高频命令实战卸载预装、logcat 抓日志、截图与无线调试连接状态稳定到 device 后adb 的价值才开始释放。我平时被问得最多的四类需求卸预装应用、抓日志、截图录屏、无线调试。这一章直接给可复制的命令和参数Windows cmd 和 PowerShell 里都能跑。4.1 卸载预装应用pm uninstall 与 --user 0 的边界新手机到手预装应用删不掉是个伪需求adb 卸载才是真需求。先列出第三方应用adb shell pm list packages -3-3 是过滤条件只列用户安装的应用系统预装应用不会全部显示。要精准找出某个应用包名再用 findstr 过滤adb shell pm list packages | findstr miui找到包名后执行卸载adb shell pm uninstall --user 0 com.miui.video注意 --user 和 0 之间必须有空格网上有些写法是“--user0”那是错的会直接报 unknown option。--user 0 表示“只对当前用户卸载”不是物理删除系统分区里的 APK应用的文件和数据还在 /system 或 /vendor 分区里恢复出厂设置后它会回来。这种“卸载”对厂商系统来说是安全的不影响 OTA 更新也不会破坏签名校验。后悔药也有adb shell cmd package install-existing com.miui.video这句把刚才卸载的应用装回来同样只影响当前用户恢复之后应用数据是全新状态。如果要批量处理可以把包名列表存成 txt逐行 uninstall但别把 system 核心包比如 com.android.systemui、com.android.settings放进清单里卸了直接黑屏桌面只能恢复出厂救回来。4.2 logcat 抓日志从全量导出到定向过滤App 崩溃、闪退、后台被杀售后一张嘴就是“日志发我”adb logcat 几乎是唯一能拿完整现场的手段。全量抓取一条命令adb logcat -v time full_log.txt 21-v time 给每条日志加上时间戳 重定向到当前目录的 full_log.txt21 把标准错误也并进去避免在 Windows 下丢一半输出。CtrlC 结束抓取文件里就是完整过程。如果只想抓某个进程先找到 PIDadb shell pidof com.tencent.mm adb logcat -v time --pid12345 wechat.log--pid 等于只保留指定进程的日志文件体积小定位快但需要 Android 7.0 以上设备支持。还有一种更常用的过滤方式是按标签和级别adb logcat -v time -s ActivityManager:I-s 表示“静默 只输出指定标签”ActivityManager:I 意思是只看 ActivityManager 的 Info 级别以上。翻译成逻辑就是系统里谁在启动 Activity一目了然。日志抓完清空缓冲区避免下一次抓的时候把旧日志混进来adb logcat -c-c 是 clear。我一般在复现 bug 前先执行 -c 清空再操作 App再全量抓取这样 log 就是一次纯净的复现现场。4.3 截图和录屏exec-out 与 shell 的区别给设备截屏有两种写法效果有区别:: 方式一输出到设备存储再 pull 回来 adb shell screencap -p /sdcard/screen.png adb pull /sdcard/screen.png :: 方式二直接输出到电脑推荐 adb exec-out screencap -p screen.png方式一在 /sdcard 里生成文件再拉回来多一步但兼容性最好。方式二用 exec-out 直接输出二进制到电脑省了设备上存文件的步骤。Windows 下注意用普通 adb shell screencap 加重定向会写出损坏的 PNG表现为“文件打不开”原因在于 cmd 会把二进制内容当文本处理换行符被转义exec-out 明确告诉 adb 这里是原始字节流不做文本处理所以能拿到完好的图片。录屏对应的是 screenrecord它不接受输出到 stdoutadb shell screenrecord --time-limit 15 --bit-rate 4000000 /sdcard/demo.mp4 adb pull /sdcard/demo.mp4--time-limit 15 表示录 15 秒上限 180 秒--bit-rate 4000000 是 4Mbps清晰度够普通 demo 演示默认 20Mbps 会录出大文件。想压分辨率加 --size 720x1280适合跑车机屏幕测试时省空间。注意 screenrecord 只能录到设备存储路径录完必须 pull。4.4 无线调试一根线都不要连接物理线最大的价值只剩首次授权和启动无线调试端口。先有线连着执行adb tcpip 5555 adb connect 192.168.1.100:5555tcpip 5555 让设备在 5555 端口监听 adb 连接connect 后面跟的是设备 IP。设备 IP 在手机的“设置 - 关于 - 状态信息”里能看到车机和电视盒子一般在“设置 - 网络”里显示。执行完 connect可以拔线后续 adb 命令照常执行。断开无线连接用 adb disconnect。无线调试的坑集中在“连不上”上一是手机和电脑不在同一网段手机连的 5G WiFi、电脑走网线这种情况直接不通二是路由器开了“AP 隔离”或“访客网络”设备之间互相不可见三是 connect 之后没验证一直看到 connecting 就干等。我的习惯是 connect 之后立刻 adb devices 看一眼状态如果是 unauthorized走第 3 章的授权流程如果是 device再执行真正要做的命令。注意设备重启后5555 端口会复位要插线重新执行一次 tcpip 5555这是正常现象不是 adb 坏了。顺手把常用命令收成一张表放在手边命令作用常见场景adb devices -l显示所有设备及型号确认连接状态adb install -r app.apk覆盖安装应用升级测试包adb shell am start -n 包名/Activity名启动指定页面跳转到某 Activityadb shell input keyevent 4模拟返回键自动化点按adb reboot正常重启设备改完设置重启生效adb reboot recovery重启到 Recovery刷固件、双清adb pull /sdcard/file ./从设备拉文件取日志、取图片adb push ./file /sdcard/推文件到设备放测试素材4.5 模拟器和云手机别用真机逻辑连模拟器类环境和真机 adb 有个关键差异端口不是 5555。腾讯应用宝模拟器、夜神这类工具都有自己的 adb 端口而且会随版本变。用 adb connect 127.0.0.1:5555 去连本机模拟器大概率失败要在模拟器设置里找它自己显示的 adb 调试端口或者直接使用模拟器自带的 adb 版本。云手机则更特殊授权流程往往在网页控制台上完成connect 后状态是 unauthorized 时要去云手机管理后台看有没有授权确认按钮这跟本地设备弹窗逻辑完全不同。5. 电视盒子与车机开不了 ADB、授权超时的四个避坑记录到了电视盒子和车机adb 的玩法变了手机是系统教你一步步连盒子车机是设备自己藏猫猫。这一章每一条都是踩过坑换来血泪经验按“现象 - 原因 - 解决”整理照着抄能少走很多弯路。5.1 现象开发者选项里根本没有 ADB 开关盒子接上电脑adb devices 输出为空进设备设置翻半天发现整个系统里连“开发者选项”这个入口都没有。原因很直接厂商把开发者选项藏起来了或者开发者入口需要遥控器组合键激活。中兴 B860AV3.1-M2 这类晨星芯片方案的盒子常见入口是“设置 - 更多设置 - 开发者选项”但部分固件要连按遥控器“菜单”键或者“信号源 主页”组合键才能呼出工厂菜单还有一批版本要进“本机信息”里点版本号七次和手机的逻辑一致。解决方法是先看盒子固件版本号和芯片方案再去搜“固件版本号 开启 adb”不要搜“通用开启 adb 教程”。原因是盒子固件高度定制每个厂商每个版本入口都可能不一样通用教程大概率对不上。更别急着下载“一键开启 ADB 工具”这类工具在陌生版本固件上通常没有写入权限反而可能改乱系统设置。5.2 现象ADB 开关旁边显示一串动态码或提示输入口令这基本是创维、酷开系统的特色。现象是开发者选项里明明有 ADB 开关打开后屏幕显示一串不定期变化的数字要求输入对应的口令才能启用 adb。原因这串动态码由固件算法按序列号、MAC、固件版本生成不是固定密码网上流传的旧版计算器对不上新版固件的算法。解决路径分三步。第一步确定自己的固件版本看“设置 - 关于 - 固件版本号”。第二步找对应固件版本的动态码计算器不同版本算法不同必须用匹配的那一个。第三步如果计算服务要求提供 device id 和 MAC 地址把“设置 - 网络信息”里的 MAC 拍清楚再填写。这类计算器只解决 adb 开关不涉及刷机风险可控。我一般不建议为了开 adb 去刷第三方固件盒子变砖的后悔药比手机少得多。5.3 现象adb connect 一直 connecting 到最后超时现象很典型盒子和电脑连同一个 WiFiadb connect 输进去命令行卡在 connecting 然后报 timeout。原因通常在三个层面一是盒子 WiFi 和电脑不在同一网段比如盒子连了 2.4G电脑连了 5G而路由器没开“允许不同频段互通”二是路由器开了 AP 隔离访客网络默认会隔离设备之间互 ping 不通三是盒子端 adb tcpip 5555 没有成功执行盒子的 adb 还没在网口上监听。排查顺序别乱先确认盒子 IPping 一下ping 不通就是二层网络问题ping 通了再 adb connectconnect 之后立刻 adb devices 看是不是 unauthorized如果是去盒子上重新确认开关状态。实测里七成的 timeout 是路由器 AP 隔离进路由器管理后台关掉“访客隔离”或者把盒子和电脑都接到同一个主 WiFi 下就好。我的土办法是把电脑和盒子都连手机热点热点天然是同一网段如果这样能连上就是家里路由器的锅。5.4 现象车机 connect 后 unauthorized但车机屏幕没有任何授权弹窗车机场景最迷惑。现象是 adb devices 能看到车机序列号状态是 unauthorized但车机屏幕上找不到任何“允许调试”的弹窗干等十分钟也没变化。原因车机系统普遍对 USB 调试授权做了隐藏处理弹窗被车载 HMI 吞掉或者弹窗出现在副驾驶、后排屏上你根本没看见。解决方向是回到车机设置里找授权管理入口。比亚迪 DiLink 这类系统打开开发者选项和 USB 调试之后还有一个“USB 调试授权管理”或“清除授权记录”的入口把它清掉然后重新拔插 USB再 adb devices。有些车型需要把 USB 模式切到“调试”而不是默认的“充电”这一步容易忽略。车机的 adb 权限能做的事装 APK、调分辨率、抓日志、开关系统设置。千万别顺手去 root 车机或者动 /system 分区车机系统一旦起不来维修成本比手机高一个数量级而且大多数车机没有公开可用的救砖方案。6. 进阶把 adb 塞进一键脚本拿新设备先验证状态机日常用得多了我习惯把“验证连接 抓日志 列应用 截图”打包成一个 bat 脚本每条命令都是前面章节验证过的基础操作拼在一起就是一分钟体检。echo off adb kill-server nul 21 adb start-server nul 21 adb devices timeout /t 2 nul for /f skip1 tokens1,2 %%i in (adb devices) do ( if %%jdevice ( echo [OK] %%i 已授权开始抓取信息 adb -s %%i shell pm list packages -3 installed_apps.txt adb -s %%i logcat -d -v time full_log.txt adb -s %%i exec-out screencap -p screen.png ) else ( echo [WARN] %%i 当前状态为 %%j请检查授权弹窗或驱动 ) ) echo 体检完成已生成 installed_apps.txt / full_log.txt / screen.png脚本逻辑分三段第一段 kill-server 再 start-server确保 adb server 是干净状态中间段用 for /f 解析 adb devices 的输出skip1 表示跳过第一行表头tokens1,2 取第一列序列号和第二列状态只有状态是 device 才执行后续抓取最后一段提示输出文件。Path 没配好的环境里脚本第一行先加 cd /d C:\adb保证在任意目录双击都能跑。这套脚本的价值在于把“连不上就瞎试”变成“一次拿到全部现场信息”。从那以后我每次拿到新设备第一件事都是跑一遍这个体检脚本看到输出里的 device 状态再开始装应用、改设置看到 unauthorized 就先处理授权不再像以前一样上来就换线换驱动瞎折腾。希望这些命令和踩过的坑能帮你在手机、盒子和车机上少走几段弯路。本文还有配套的精品资源点击获取