快速搞懂adb:下载安装环境配置与高频用法全记录
2026/9/18 8:56:48 网站建设 项目流程

快速搞懂adb:下载、安装、环境配置与高频用法全记录

做安卓开发、玩机调试、或者纯粹想研究手机里那些隐藏功能的人,应该都绕不开adb这个名字。它的全称是Android Debug Bridge,翻译过来就是安卓调试桥。名字听着挺玄乎,实际上它就是电脑和手机之间的一座通信管道,你在这头敲命令,那头手机就按指令干活,比如装应用、传文件、抓日志、调系统设置,甚至给应用授权。很多所谓的“玩机黑科技”,拆开来看,底层都是在用adb命令。

这篇博客不整虚的,我把从零开始下载adb、装驱动、配环境变量、连接手机、再到日常高频使用的命令全部拆开来讲,顺便把我自己踩过的坑和排查思路一并写出来。不管你是刚接触adb的新手,还是想查漏补缺的老玩家,按着这篇顺序走一遍,基本就能把adb玩明白了。

1. 下载与安装:先让电脑“认识”adb

很多人卡在第一步,以为是下载一个软件装上就完事,其实adb不是一个双击安装的图形化软件,它本质上是一个命令行工具集。你需要拿到官方工具包,然后在电脑上把它配置好,让它能随时被调用。

1.1 从哪下载最靠谱

这里给两个渠道,一个是最权威的,一个是备用的。

第一个渠道是Android开发者官方网站。谷歌官方会随Android SDK一起发布Platform Tools,adb就在这里面。这个工具包更新很勤快,新手机、新系统出来之后,旧版adb偶尔会不识别设备,更新到最新版通常就能解决。下载页面找“SDK Platform Tools”就行,它会根据你的操作系统自动推荐相应版本,Windows用户选zip包,Mac和Linux用户选对应的tar.gz包。

第二个渠道是国内的安卓社区或镜像站。比如一些高校镜像、第三方开发者站点,会同步官方Platform Tools。这个渠道的好处是下载速度快,不用访问外网。但要注意,只从可信度高的站点下载,下载完最好比对一下文件哈希值,防止别人动过手脚。我平时用的还是官方源,图个放心。

下载完你拿到的是一个压缩包,里面是一组exe和dll文件。注意,压缩包里的东西直接就能用,不需要什么安装向导。我自己习惯把它解压到一个固定位置,比如Windows下的D:\platform-tools,或者Mac下的~/platform-tools,然后把路径记好,后面配置环境变量会用到。

1.2 Windows下的驱动问题

把adb解压出来之后,你插上手机执行adb devices,有可能会发现设备列表空空的,或者显示一个“设备无法识别”。这个情况大概率是驱动没装好,尤其是Windows系统。

怎么判断是驱动问题?右键“此电脑”选“管理”,进“设备管理器”,看“其他设备”或“便携设备”里有没有带黄色感叹号的项。如果有,展开后能看到类似“ADB Interface”或“Android Composite ADB Interface”之类的名字,右键选“更新驱动程序”,手动指定到你的platform-tools文件夹,让系统在里面找驱动。如果还不行,就去你的手机品牌官网下载对应USB驱动,品牌机一般都有专门的驱动包。

有个小技巧:现在很多手机默认的USB连接方式是“仅充电”,这种状态下电脑很难识别设备。连接后下拉通知栏,把USB模式改成“文件传输(MTP)”或直接选“传输文件”,很多识别问题就没了。

注意:驱动装完后最好重启一下电脑。我做测试的时候经常发现,驱动装完不重启,adb有时候就是死活不认设备,重启后立刻就好。

1.3 配置环境变量:告别每次输完整路径

拿到platform-tools后,如果你不想每次输命令都先打一长串完整路径,比如D:\platform-tools\adb.exe devices,那就要配置环境变量。把platform-tools目录加到系统的PATH里,之后在任何目录下打开终端,直接敲adb就能用了。

Windows配置路径是:右键“此电脑”>“属性”>“高级系统设置”>“环境变量”。在“系统变量”里找到Path这一项,双击它,点“新建”,把platform-tools的完整路径粘贴进去。Mac和Linux用户则是在~/.bash_profile~/.zshrc里加一行export PATH=$PATH:~/platform-tools,然后source一下。

配置完验证一下。重新打开一个终端窗口(注意是新的窗口,旧窗口里环境变量不会刷新),输入adb version,如果能正常打印出版本号,说明配置成功。

2. 连接设备:让电脑和手机建立通信

工具备好了,接下来就是让电脑和手机连上。这里面也有不少细节,很多新手折腾半天连不上,基本都是卡在这些地方。

2.1 开启开发者选项和USB调试

这是必须的一步,也是所有adb操作的前提。打开手机“设置”,找到“关于手机”,连续点击“版本号”七次,直到提示“您已进入开发者模式”。然后返回设置主菜单,就能看到“开发者选项”了。进去之后打开“USB调试”开关。

不同厂商的入口稍微有点差别,但大方向一致。小米、红米手机需要额外在“开发者选项”里打开“USB调试(安全设置)”,否则部分模拟点击、授权类的命令会被拦截。华为、荣耀手机则要注意那个“仅充电模式下允许ADB调试”的选项,顺手打开最好。

提示:安全设置这类开关,请按需开启,用完建议关闭。尤其是借来的测试机,不要随意开启高权限调试选项。

2.2 首次连接与授权弹窗处理

用数据线把手机插到电脑上,终端里执行:

adb devices

正常情况下第一次执行,手机会弹出一个“允许USB调试吗”的对话框,勾选“始终允许使用这台计算机进行调试”,点确定。然后终端里就会列出你的设备编号,后面标注device,这就是连接成功。

如果列表里什么都没有,或者显示unauthorized,说明授权没完成。解决思路是:拔掉数据线重插,重新执行adb devices,手机屏上注意看弹窗,及时点允许。若多次不弹窗,可以执行adb kill-server然后adb start-server,把adb服务重启一次再连。

2.3 无线连接:摆脱数据线束缚

大家基本都用数据线连接。不过调试到一半想走动走动,或者手机接口接触不良,就可以试试无线连接。前提是电脑和手机处于同一个局域网。

先用数据线连接手机,执行:

adb tcpip 5555

然后拔掉数据线,找到手机的IP地址(设置>关于手机>状态信息里能看),接着执行:

adb connect 192.168.x.x:5555

看到connected to 192.168.x.x:5555就说明连上了。无线连接偶尔会断,重新adb connect一次即可。我自己的经验是,无线连接适合短时操作,长时间的大文件传输,不如数据线稳。

2.4 多设备管理

电脑上同时连着好几台手机时,adb devices会列出所有设备。如果想指定操作某一台,命令后面加-s参数指定序列号:

adb -s 设备的序列号 shell

这个在批量测试、多台设备同时调试时很实用,不然adb会报错说“有多个设备”。

3. 日常高频命令:覆盖应用、文件与系统设置

adb命令非常多,但我平时实际用到的高频命令其实就那么几十条,这里挑最核心、最容易踩坑的展开讲。

3.1 安装与卸载应用

安装应用是最高频的操作之一。命令格式:

adb install 应用包路径.apk

这个命令会保留应用数据做覆盖安装。如果你想先卸载再全新安装,或者忽略版本号直接降级安装,可以用:

adb install -r 应用包路径.apk # 保留数据覆盖安装 adb install -d 应用包路径.apk # 允许降级安装 adb install -g 应用包路径.apk # 安装时直接授予所有运行时权限

卸载命令也很简单:

adb uninstall 包名 adb uninstall -k 包名 # 卸载但保留数据和缓存目录

这里说一个坑,很多小白不知道“包名”是什么。包名是应用的唯一标识,比如微信的包名是com.tencent.mm,淘宝是com.taobao.taobao。想查看某个应用包名,可以在已连接状态下执行:

adb shell pm list packages

后面如果跟一个关键词过滤,比如adb shell pm list packages | grep tencent,就能列出腾讯相关的所有应用。

3.2 文件传输:手机和电脑互传

传文件也是高频操作。电脑往手机里推:

adb push 电脑本地文件路径 /sdcard/Download/

手机往电脑里拉:

adb pull /sdcard/Download/某个文件 电脑保存路径

路径上有一个坑,安卓的存储路径不是固定的,不同机型差异很大。有的手机/sdcard/就是内置存储,有的手机把内置存储挂载在/storage/emulated/0/。最稳妥的办法是:先用adb shell进入手机终端,然后执行ls看看有哪些目录,或者执行echo $HOME看当前用户主目录在哪。不要想当然地写死路径。

3.3 截图与录屏

这个功能非常实用,不需要手机root,也不用装任何App,就能直接把手机屏幕截下来,再拉回电脑。

adb exec-out screencap -p > 截图保存路径.png

录屏命令:

adb shell screenrecord /sdcard/Download/录屏.mp4

录屏结束后按Ctrl+C终止录制,再用adb pull把文件拉回电脑。注意录屏默认有180秒时长限制,超时会自动停止,需要更长时可以在命令后加--time-limit 300(单位秒)来设置。

3.4 设置屏幕刷新率

系统级别的刷新率,很多机型因为省电策略,在特定场景下会自动降到60Hz。但有些用户就想强制全局保持高刷,用adb就能实现:

adb shell settings put system peak_refresh_rate 120 adb shell settings put system min_refresh_rate 120

不同厂商的参数名略有不同,有的机型用的是user_refresh_rate,有的用hw_refresh_rate。不确定的时候,先执行adb shell settings list system | grep refresh查看一下现有配置项。修改完想恢复默认,执行:

adb shell settings delete system peak_refresh_rate adb shell settings delete system min_refresh_rate

注意:这个操作只能修改系统设置项,不是改内核驱动。如果你的屏幕硬件本身只有90Hz,写120也不会生效,手机最高刷新率由屏幕面板决定。

3.5 禁止应用联网

这个需求在国产机里很常见,比如不想让某个App在后台偷跑流量。系统自带的应用管理里能设置,但有些机型入口藏得深,或者直接没有这个选项。这个时候可以用adb来操作。

传统思路是使用iptables防火墙规则限制某个应用的所有网络请求,但这个方法在部分新机型上会因为权限限制而失败,而且需要反复调试。

更常用的方式是结合appops命令:

adb shell appops set 包名 RUN_IN_BACKGROUND deny

这个命令可以禁止应用在后台运行,从根源上减少后台联网。如果是要禁止应用使用数据流量或Wi-Fi联网,需要根据系统原生机型测试可用参数,部分系统并不完整支持,请以实际生效结果为准。

准确说,安卓的联网控制底层实现比较复杂。不同系统版本上,appops里的联网相关项名称不一致,有的叫INTERNET,有的叫RUN_ANY_IN_BACKGROUND。想稳妥一点,还是在系统自带的“应用管理”里操作,或使用手机厂商的管家类App。adb能做的,是帮你精确定位到包的完整状态,以及快速重置所有权限。

3.6 授予无障碍权限

很多自动化脚本、打卡软件、以及“刘海屏适配”工具,都需要打开无障碍服务。手动去设置里翻找很麻烦,尤其要给多台设备批量配置时,用adb一条命令搞定:

adb shell settings put secure enabled_accessibility_services 包名/无障碍服务类名

这里的“无障碍服务类名”是什么?需要先知道每个应用的无障碍类全路径名称。可以执行:

adb shell dumpsys accessibility

在输出里搜索应用名,找到对应服务类名。然后执行:

adb shell settings put secure enabled_accessibility_services 应用包名/服务类全路径 adb shell settings put secure accessibility_enabled 1

这样无障碍服务就被打开了。我自己批量设置测试机的时候,就是靠这两条命令完成自动化,省去手动点击的重复劳动。

4. 日志与系统状态查看:调试问题的利器

应用闪退、卡顿、网络异常,这些时候日志排查是必须的。adb logcat是安卓调试中使用频率极高的命令,很多网上求助帖里的系统日志,就是通过它导出的。

4.1 logcat抓取日志

最简单的抓取方式:

adb logcat

执行后终端会实时滚屏输出系统日志,刷得飞快。大多数情况下,你需要的是按条件过滤。比如只查看某个应用的日志:

adb logcat --pid=$(adb shell pidof 包名)

这个命令先获取应用进程ID,再只输出该进程相关的日志,比一股脑全量输出清爽很多。

如果是排查崩溃问题,最好把日志保存到本地文件:

adb logcat -v time > 日志文件路径.log

-v time参数会在每条日志前加上时间戳,方便定位崩溃发生的具体时间点。然后按Ctrl+C停止。

抓取日志时有一个小细节,安卓系统日志缓冲区是环形结构,旧的日志会被新的冲掉。如果崩溃发生在很久之前,直接抓可能已经看不到关键线索。此时可以先把系统日志缓冲“清空”再复现问题。操作方法分两步,先执行:

adb logcat -c

这个命令会清空当前所有日志缓存。然后再执行adb logcat,去复现应用崩溃的操作流程,这样抓到的日志里就只包含崩溃前后的完整信息,排查效率非常高。

4.2 dumpsys:查看系统内部状态

dumpsys是一个很大的话题,它能读取系统所有服务的信息。比较常用的几个是:

查看电池状态:

adb shell dumpsys battery

输出里能看到电量等级、电压、温度、充电状态等信息。

如果需要临时模拟电池状态(比如测试低电量下App的表现),可以用:

adb shell dumpsys battery set level 5

把电量强制设置成5%。测试完记得恢复:

adb shell dumpsys battery reset

查看当前界面和Activity信息:

adb shell dumpsys window | grep mCurrentFocus

这个一般用来快速确认当前停留在哪个应用页面。

查看CPU与内存占用:

adb shell dumpsys cpuinfo adb shell dumpsys meminfo 包名

调试性能问题的时候,这两条命令非常有用,能一眼看出哪个进程在吃资源。

4.3 模拟用户操作

有时候做自动化测试,或者远程帮人调试,可以用命令模拟点击和滑动。

模拟点击屏幕上的坐标点:

adb shell input tap x y

模拟滑动:

adb shell input swipe x1 y1 x2 y2 持续时间毫秒

模拟输入文字:

adb shell input text "你要输入的文本"

这种方式输入的文本只支持英文字符和数字,中文会乱码。需要输入中文时,可以用adb shell am broadcast的方式配合输入法App来实现,但配置相对复杂,日常使用中我更多还是用adb shell input做简单自动化。

怎么确定坐标点?先在手机上打开“开发者选项”里的“指针位置”,屏幕上会实时显示手指点按处的坐标。记下坐标后,再去电脑上执行相应命令。

5. 常见问题排查与避坑指南

实操下来,adb会遇到的问题基本就那几类,这里整理了一份排查速查表,都是我踩过坑之后总结出来的。

问题现象可能原因解决方法
adb devices看不到设备USB模式不对或驱动问题检查USB连接模式,改为文件传输;查看设备管理器,更新ADB驱动
设备状态显示unauthorized手机未授权电脑调试拔线重插,注意手机弹窗,点击允许;或执行adb kill-server重启adb服务后重试
adb: command not found环境变量未配置或终端未刷新重新配置PATH,开启新终端窗口重试
adb installINSTALL_FAILED_UPDATE_INCOMPATIBLE已安装的版本签名不同先卸载旧应用,再重新安装
连接手机后频繁断开数据线质量差或接口松动换一条原装或高规格数据线,避免使用延长线
无线连接一直失败手机和电脑不在同一网段确认连的是同一个Wi-Fi,或检查AP隔离设置
adb shell命令提示Permission denied部分系统命令需要更高权限确认手机已解锁OEM,或使用adb root(仅适用于已root设备)
截图保存到电脑是0字节exec-out命令被中断改用adb shell screencap /sdcard/screen.pngadb pull
logcat日志刷新过快找不到关键信息日志缓冲太多旧内容adb logcat -c清空,再复现问题抓取日志
关于系统精简与冻结操作的额外提醒

玩机圈里经常能看到类似“vivo adb精简列表”“红米K70用adb冻结”之类的词。所谓精简,本质是用adb禁用或卸载系统内置应用。常见命令是:

adb shell pm disable-user --user 0 包名

这个命令可以将系统应用从当前用户下禁用,相当于“冻结”而不是删除,之后想恢复再执行adb shell pm enable 包名

这个命令本身没有危险,危险的在于对系统应用动手之前,你根本不知道它被禁用后会导致什么连锁反应。我曾经在一个测试机上禁用了一个看着没什么用的系统UI组件,结果整个手势导航失效,进设置都难。而且部分深度精简操作需要解锁system分区,技术门槛和风险都会成倍增加。

所以我给的建议是:

  • 动手前先备份当前应用列表,记录哪些应用被改动过,方便回溯。
  • 只冻结自己明确知道用途的应用,不确定的坚决不动。
  • 不要同时禁用多个应用,一次只改一个,出问题了好定位。
  • 大多数“系统内置”应用禁用了会影响核心功能,特别是厂商账号体系、系统更新服务、以及基础界面组件。

系统的出厂设置自有它的设计逻辑,过度精简往往会以牺牲系统的稳定性和功能完整性为代价。如果你真的觉得某款预装应用碍眼,系统设置里一般都有“停用”选项,能用系统原生方案解决的,就没必要动用adb。

写在最后

adb这个东西,刚开始接触会觉得命令又多又杂,但用顺手之后,你会慢慢发现它其实是一个效率工具。安装App、传文件、抓日志、调系统设置,日常折腾手机能遇到的大部分需求,adb都能覆盖。尤其对于经常做安卓开发、设备测试或者玩机调试的人来说,熟练掌握adb几乎是必备技能。

我个人实际操作中的体会是:遇到问题先别急着查什么“高级玩法”,优先把基础命令吃透,尤其是adb devicesadb installadb logcatadb pull/push这几个,它们能解决80%的日常需求。另外,养成好习惯,下载adb工具包时认准官方渠道,动手改系统设置前先记下原始值,这些细节能在关键时候帮你省下大量时间。

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

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

立即咨询