资讯动态

从零配置Android SDK环境:adb工具安装与常用命令详解

发布时间:2026/9/19 8:22:40 来源:尧图企业网站定制
前阵子有个朋友找我说他新换的安卓手机里预装了好几个用不上的应用长按只能“停用”不能卸载系统设置的犄角旮旯里也找不到开关。我跟他说电脑上装个 adb一条命令就能搞定。他听完一脸茫然adb 是啥去哪下怎么配环境说实话这些问题我在各种社群里见过无数遍了今天干脆把从零开始配置 Android SDK 环境、把 adb 跑起来的完整流程写清楚。这篇内容适合完全没接触过命令行的小白也适合一直只会在 Android Studio 里点鼠标、却对底下那套命令毫无概念的开发者。核心就三件事Android SDK 是什么怎么下载安装adb 环境怎么配置、常用命令怎么用。1. 先把概念掰开揉碎1.1 Android SDK 到底是个什么东西很多人一听到 Android SDK 这几个词就头疼潜意识里觉得这是搞安卓开发的人才能碰的东西。其实 SDK 的全称是 Software Development Kit翻译过来就是软件开发工具包它本质上是提供给开发者的一整套工具集合用来编译、调试、打包安卓应用。但有意思的是这套工具里的很多组件对不写代码的人来说同样非常有用尤其是里面那个叫 adb 的命令行工具简直就是安卓设备的“万能遥控器”。如果你打开 Android SDK 的安装目录会发现里面有几十个子目录名字五花八门。常见的包括 platform-tools存放 adb、fastboot 等调试工具、build-tools存放编译工具和打包工具、platforms存放各版本系统框架、emulator安卓模拟器等等。普通用户下载 SDK 的时候看到这么多目录会觉得很吓人其实平时真正用得到的就其中一小部分其他都躺在硬盘里吃灰。我用一个生活化的比喻来解释Android SDK 就像是一个庞大的工具箱里面整齐排列着螺丝刀、扳手、电钻、水平仪等等。你不需要精通所有工具但只要有其中一两件比如那把最常用的螺丝刀——也就是 adb——就能解决不少实际问题。这篇文章的目标不是让你把所有工具都用起来而是帮你把工具箱拿到手把最常用的那把螺丝刀装好。1.2 adb 在安卓调试体系里的角色adb 的全称是 Android Debug Bridge直译过来是安卓调试桥。“桥”这个字非常形象你的电脑是一端安卓设备是另一端adb 就是连接两端的桥。这座桥建好之后你可以在电脑的命令行窗口里直接向手机下发指令让手机执行各种操作比如安装应用、卸载应用、复制文件、查看系统日志、模拟点击屏幕等等。为什么要强调 adb 而不是 Android SDK 本身因为在实际使用中绝大多数非开发场景下大家需要的只是 adb 这一个命令工具。你会发现网上的很多教程、很多工具脚本给的第一行命令都是 adb而不是什么 SDK 的完整操作界面。这也就解释了为什么有人会单独搜索“adb 工具下载”而不是去下载整个 Android SDK。adb 的底层实现可以简单理解为电脑端的 adb 客户端连接上手机里的 adbd 守护进程双方通过 USB 数据线或无线网络进行通信。手机端的 adbd 进程在安卓系统里一直存在只不过默认不响应外部指令只有当你打开了“开发者选项”里的“USB 调试”开关并且电脑端拿到了手机弹窗上的授权这座桥才会真正通车。所以很多新手第一次输 adb devices 显示 unauthorized根本原因就是桥有了但门禁没放行。1.3 什么人需要这套环境什么人其实不需要很多人来搜 adb 下载安装但并不是所有人都真的需要完整版 SDK。我做了一个简单的分类你可以自己对号入座第一类搞安卓开发的人。这类人需要完整 SDK甚至还要搭配 Android Studio 集成开发环境因为要编译、调试、打包缺哪个组件都不行。第二类测试工程师、自动化脚本爱好者。这类人经常需要给设备装各种测试包、抓取崩溃日志、批量执行自动化脚本完整 SDK 和 command line tools 都需要建议装全。第三类普通手机玩家。只是想用 adb 冻结一下系统应用、传个文件、截图录屏、查看电池状态这类需求只需要 platform-tools 里的 adb 这一条命令完全没必要下载几个 GB 的完整 SDK。这里我想提醒一句很多人一搜“adb 环境配置”直接跑去下载了 Android Studio装完发现界面复杂、功能又用不上还把电脑磁盘占了好几 GB属于典型的杀鸡用牛刀。我接下来会告诉你怎么只下载那部分最核心的组件把环境配置这条路走得又短又直。2. 下载与版本选择2.1 完整 Android Studio 还是轻量 Command Line Tools这个问题的答案取决于你的实际需求。Android Studio 是官方出品的集成开发环境体积很大安装包动辄上 GB装完之后你还得联网下载 SDK 组件整个流程耗时长对电脑配置也有要求。但如果你是正儿八经想学安卓开发建议老老实实装它因为后续的模拟器、布局编辑器、性能分析工具都集成在里面开发体验是最完整的。如果你只是需要 adb或者需要在命令行下执行一些自动化任务那 Command Line Tools 是更合适的选择。这个工具包体积很小通过 sdkmanager 命令可以自主选择安装哪些组件灵活性非常高。大家在网上经常看到的“android sdk command line tools”这个说法指的就是这个组件。我个人的建议是不要一上来就纠结装哪个先想清楚你的核心诉求。如果你是因为手里有一台安卓手机、想通过电脑对它做点事情而找到这篇教程的那直接选 Command Line Tools 就够了。等某天你真的需要写安卓应用了再回头补装 Android Studio 也不迟二者并不冲突。2.2 platform-tools 和 build-tools它们分别管什么在 SDK 管理器里你会反复看到两个名字很相似的工具包platform-tools 和 build-tools。很多人第一次见到会懵不知道它们有什么区别也不知道自己到底需要哪个。platform-tools 是平台工具里面包含的是跟设备交互的那部分命令adb、fastboot 等。adb 我们前面说了是跟手机通信的桥梁fastboot 则是刷机模式下使用的底层刷写工具。如果你需要跟真实的安卓设备打交道platform-tools 是必须装的。build-tools 是构建工具里面包含 aapt、apksigner、zipalign 这些和打包、签名、资源处理相关的工具。这些都是开发者在编译 APK 时才会用到的普通用户完全不需要碰。有同学会问那 SDK Platforms 呢这是各个安卓版本的系统框架只有想编译特定版本的 APP、或者用模拟器跑某个系统版本时才有意义对单纯使用 adb 的用户来说也可以不装。所以在配置环境的时候你真正需要装的东西其实就一个platform-tools。其他组件完全可以留到有需要的时候通过 sdkmanager 命令再补装。这也是我想传达的核心思路用多少装多少别贪多。2.3 版本号怎么看选哪个不踩坑你搜索 Android SDK 下载的时候会看到类似“android sdk tool 35”、“android sdk platform 29”这样的说法这些数字代表的是版本号。版本号主要跟 API 级别挂钩比如 Android 14 对应 API 34Android 15 对应 API 35。对于开发来说版本号会影响编译目标对于使用 adb 的普通用户来说版本号的影响就小很多了。我的建议很简单尽量用较新的稳定版 platform-tools。因为新版本的 adb 对新一代安卓系统的兼容性更好比如安卓 14、15 上的一些新的安全模型、日志格式老版本的 adb 可能支持不好。但也不用盲目追求最新有些刚发布的小版本可能有兼容性 bug可以等社区反馈一两天再决定要不要升。另外要提醒的是网上很多所谓的“adb 工具包”下载站给出的其实是很多年前的老版本。这种老版本 adb 在连接新版安卓手机时非常容易出问题轻则设备识别不到重则授权失败。所以下载的时候一定要认准从 Android 开发者官方网站的 SDK 下载页获取或者通过 sdkmanager 命令行工具自动获取版本号以官方为准。3. 安装配置全过程3.1 一步步装好 Command Line Tools先说一下总体流程。第一步去 Android 开发者官方网站找到 Command Line Tools 的下载入口页面上会提供 Windows、macOS、Linux 三个平台的压缩包。下载完成后把压缩包解压到一个你记得住的位置比如 Windows 下我一般放在 D 盘的 android-sdk 目录里。解压之后你会发现文件夹里其实是一个叫 cmdline-tools 的目录里面有一个 bin 目录bin 里放着 sdkmanager.batWindows 下或 sdkmanagermacOS / Linux 下这个命令行工具。在开始配置环境变量之前你还需要手动调整一下目录结构让 cmdline-tools 文件夹里直接包含 bin、lib 等子目录官方推荐把内容放到 cmdline-tools/latest 这个层级下面这样后面 sdkmanager 才不会报路径错误。然后打开命令行窗口进入 cmdline-tools/latest/bin 目录执行 sdkmanager --list它会列出所有可以安装的 SDK 包。你只需要安装 platform-tools命令大概是sdkmanager platform-tools等它下载安装完成platform-tools 目录会自动出现在你的 SDK 根目录下里面就有 adb.exeWindows 下或 adbmacOS / Linux 下。到了这一步工具本身已经装好了还差最后一个关键操作把 platform-tools 所在目录加入系统环境变量这样你就不用每次输命令都先 cd 到那一大串路径里去。3.2 Windows 环境变量配置的两种姿势Windows 下配置环境变量核心是修改 Path。右键“此电脑”选“属性”进入“高级系统设置”点“环境变量”在“系统变量”里找到 Path点编辑新建一行把 platform-tools 的完整路径填进去保存。这一步之所以这么重要是因为 Windows 在执行命令的时候会按照 Path 里的路径逐个搜索找到匹配的可执行文件就直接运行。不配置环境变量你输入 adb 就会提示“不是内部或外部命令”。配置完环境变量之后记得把之前打开的所有命令行窗口全部关掉重开因为环境变量的读取发生在进程启动的时候旧窗口里的进程还保留着旧的环境信息。我见过很多人在这一步被卡住配完了重开命令行窗口截图给我看说还是提示找不到 adb仔细一问才知道他根本没关旧窗口只是新开了一个标签页。这个细节虽然小但真的坑了无数人。验证环境变量的方法很简单新开一个命令行窗口输入adb version如果看到类似 Android Debug Bridge version 1.0.41 的输出说明你的环境已经通了。这时候你把手机通过 USB 数据线连到电脑上手机弹窗里打开“USB 调试”然后就能继续后面的设备连接验证了。3.3 顺手把 JDK 装了还是不用装很多教程在讲 Android SDK 环境配置的时候会顺带让你装 Java JDK。这个有没有必要要看你用的是什么工具链。如果你用的是完整版 Android Studio那系统会自带一套运行时环境你不需要额外装 JDK。如果你用的是纯命令行工具链并且需要执行 gradle 构建、签名 APK 之类的操作那确实需要 JDK 17 或更高版本。但如果你只是用 adb 这条命令那我可以很明确地告诉你不需要装 JDK。adb 本身是 C 写的原生程序不依赖 Java 运行时。网上很多教程喜欢一股脑让你装一堆东西说是“避免后面麻烦”实际上对普通用户来说装得越多环境越混乱将来排查问题越麻烦。用 sdkmanager 安装 platform-tools 的时候也不需要先装 JDK只有当明细里出现 Java 工具链时才需要。所以我的建议是以“最小必要原则”来对待环境安装。缺什么装什么不要把整个开发全家桶都堆上去。3.4 macOS 和 Linux 环境怎么配有什么差异如果你用的是 macOS 或者 Linux整体流程和 Windows 差不多但有几点差异需要注意。第一压缩包解压后可执行文件没有 .exe 后缀命令直接是 adb、sdkmanager所以验证命令时不要加后缀。第二环境变量配置不是改 Path而是修改 shell 的配置文件比如 macOS 默认的 zsh 改 ~/.zshrcLinux 上如果用 bash 就改 ~/.bashrc在里面加一行export PATH$PATH:/你的路径/android-sdk/platform-tools保存之后执行 source ~/.zshrc 或 source ~/.bashrc让配置立即生效。第三Linux 下连接安卓设备时经常遇到设备权限不足的问题本质上是因为当前用户不在 plugdev 用户组里或者 udev 规则没有配置。你可以先用 sudo adb kill-server sudo adb start-server 重启服务试试如果还是识别不到设备那就需要根据手机厂商的 USB Vendor ID 写一条 udev 规则。macOS 和 Linux 上同样支持 adb 的无线连接、logcat 日志抓取、应用安装卸载这些操作命令和 Windows 完全一致。唯一要留意的是文件路径分隔符和命令行工具的差异Windows 用反斜杠 \macOS / Linux 用正斜杠 /剩下的大同小异。4. adb 日常常用命令场景4.1 设备连接与基础状态命令当你的环境配好、手机插上数据线之后第一步一定是验证设备连接状态命令是adb devices如果你看到输出列表里有一行包含 device 字样说明设备已经成功连上了。如果显示 unauthorized说明手机弹窗里的授权还没点允许如果显示 offline说明设备之前授权过、但现在连接状态异常拔掉数据线重插、或者在手机上把 USB 调试关掉再打开多半就能恢复。关于连接方式其实除了 USB 数据线adb 还支持无线连接。手机和电脑处于同一个局域网时先用 USB 连上执行一次adb tcpip 5555 adb connect 192.168.x.x:5555之后就可以拔掉数据线通过局域网无线操作了。这个功能对经常需要在不同工位之间移动调试的人特别有用。不过无线连接比 USB 更容易受网络影响如果发现频繁断线最好还是用回数据线。除了 adb devices我平时用得比较多的还有 adb shell它可以直接进入手机内部的命令行环境相当于登录到了手机的 Linux 系统里。在这个 shell 环境里你可以查看正在运行的进程、查看系统属性、查看电池信息、模拟按键输入等等。比如你想模拟一次键盘输入可以用 adb shell input text hello想查看当前电池状态可以用 adb shell dumpsys battery。我之前调试功耗问题的时候还用过 adb shell dumpsys battery set usb 0 这种偏门命令手动让系统认为没插着 USB排除充电电流对功耗测试的干扰。可以说adb shell 是把电脑和手机打通之后真正发挥价值的入口。4.2 应用安装、卸载与冻结应用管理应该是大家最容易遇到的需求。安装一个 APK命令非常简单adb install xxx.apk如果要覆盖安装、保留数据就加 -r 参数写成 adb install -r xxx.apk。卸载应用稍微特殊一点如果你知道包名可以直接执行 adb uninstall 包名如果你不知道包名可以先用 adb shell pm list packages 查看手机上所有应用的包名清单再复制粘贴过去。卸载系统应用是很多人关注的一个点。现在不少国产手机系统预装了各种用不上的应用直接在桌面上长按卸载是卸载不掉的。这种情况下可以先通过 adb shell pm list packages 找到应用对应的包名然后执行adb shell pm uninstall --user 0 包名这条命令的意思是把当前用户下的应用卸载掉。它并不是把系统里对应的 APK 删掉而是把应用从当前用户空间里移除所以一些设备在系统更新后可能会自动恢复这些应用。不过对大多数用户来说能达到“桌面图标消失、后台不再运行”的效果已经足够了。这里想提醒一句操作系统级应用之前一定要先查清楚这个包对应的是什么不要凭感觉乱删万一删到了系统桌面或者拨号器那手机就得另外折腾了。关于冻结应用不同厂商因为系统机制的差异有些机型可能不支持 pm uninstall --user 0 这种方式比如部分小米、红米机型上大家常问“能不能用 adb 冻结”其实原理是一样的识别包名之后尝试执行卸载或停用命令不支持的话就得看厂商自己的系统工具了。这个部分不同机型差异很大需要根据具体设备灵活处理。4.3 logcat 日志抓取的实用技巧adb logcat 应该是开发者和测试人员最常用的命令之一。它的作用是把手机系统的实时日志输出到电脑屏幕上应用崩溃、系统报错这类问题基本上都能从日志里找到线索。最简单的用法是adb logcat这会持续不断地滚动输出日志按 CtrlC 可以停止。如果只想看某一种类型的日志比如崩溃信息可以配合过滤器adb logcat *:E它会只显示 Error 级别的日志。平时我排查应用崩溃问题一般会这么做先在命令行里执行 adb logcat -c 清空旧日志然后手动到手机上复现一次崩溃再用 adb logcat -d bug.log 把日志导出到文件最后在文本编辑器里搜索 FATAL 或者 AndroidRuntime 关键字事半功倍。另外如果觉得某个应用的日志太吵想只看指定应用的日志可以用 --pid 参数先通过 adb shell pidof 包名拿到应用的进程 ID再执行 adb logcat --pid进程ID。这套组合在实际工作中非常常用可以帮你从海量日志中快速定位目标。5. 常见问题与排查技巧实录5.1 adb unauthorized 到底怎么解决“adb unauthorized”这个提示几乎每个 adb 新手都会遇到一次。出现这个提示的根本原因是手机没有授权这台电脑连接。正常情况下手机屏幕会弹出一个“是否允许 USB 调试”的对话框上面还有一串 RSA 密钥指纹你勾选“始终允许使用这台计算机进行调试”再点确定就可以了。但现实是很多人根本看不到这个弹窗或者在设置里找了半天也找不到重新授权的入口。这时候你可以在手机设置的开发者选项里找到“撤销 USB 调试授权”这个选项把它点掉然后再重新插拔数据线手机会重新弹出授权请求。还有一种情况是电脑端曾经连接过另一台设备误把密钥弄混了这时可以删掉电脑上用户的 .android 目录里的 adbkey 和 adbkey.pub 文件下次连接会自动生成新的密钥。这两个文件的位置Windows 下一般在 C:\Users\你的用户名.android 里。我个人的排查顺序是先看手机有没有弹窗没有就把开发者选项里的授权全部撤销重来还不行就重启 adb server执行 adb kill-server 然后 adb start-server再不行就换一根数据线试试别笑很多奇怪问题的根源就是线材质量差。这四条下来99% 的 unauthorized 都能解决。5.2 设备管理器里看不到 Android 设备插上手机之后电脑的设备管理器里没有识别到设备或者识别到的是一个带感叹号的未知设备这通常是 USB 驱动问题。Windows 系统对安卓设备的驱动支持并不完整很多新设备第一次连接都需要安装专门的 USB 驱动或者通过 SDK 管理器安装 Google USB Driver。关于驱动的排查我按概率从高到低排列几个原因一是数据线不行很多第三方数据线只支持充电并不支持数据传输二是手机没开 USB 调试虽然你装了驱动、插上数据线但手机在系统层面没有进入调试模式Windows 依然识别不到 ADB Interface三是 USB 端口问题有的电脑前置 USB 口供电不足或信号不稳定换到机箱后面的 USB 口子就好了最后才是驱动问题。有个小技巧是Windows 下打开设备管理器拔插一下数据线看哪个设备条目发生了变化那条就是目标设备。右键选择“更新驱动程序”选择“浏览我的电脑以查找驱动程序”定位到 Android SDK 安装目录下的 drivers 文件夹或对应厂商驱动目录让系统自动搜索。如果这一套走完还是不行那就要看看是不是手机厂商特有的驱动没有装比如某些国产手机需要安装厂商助手类的工具软件驱动才会被正确装载。5.3 全局搜不到 adb 命令、端口被占一堆连环坑前面说了配完环境变量之后要重开命令行窗口。但还有人会遇到这种情况窗口重开了adb version 也能正常执行结果换一个目录执行 adb 又报错了。这种问题多半是因为你修改的是“用户变量”而不是“系统变量”或者两个变量都改过但顺序有问题。Windows 下建议把平台工具路径同时加到用户变量和系统变量的 Path 里两种窗口都能识别省得以后因为权限问题踩坑。如果执行 adb 的时候提示“端口被占用”或者“could not installsmartsocketlistener”这说明 5037 端口被其他程序占用了。5037 是 adb server 的默认监听端口如果之前有残留的 adb 进程没有正常退出或者有其他工具抢占了端口就会报这个错。解决办法是先执行 adb kill-server 把旧服务杀干净再用 netstat -ano | findstr 5037 看看谁在占用端口找到占用进程后结束它然后再 adb start-server。我还有一种比较少见但真实存在的情况电脑上装了多个 Android 工具比如某些手机助手软件它们内部自带了一套老版本的 adb开机自启动之后就把 5037 端口占住了。你命令行里敲的 adb version 显示是新版本但实际连上 server 的是老版本然后就会出现各种莫名其妙的兼容性问题。遇到这种情况建议在系统服务或启动项里把这类助手软件彻底关掉一劳永逸。5.4 其他几个值得留意的细节除了上面三个高频问题还有几个细节容易被忽视。第一个是有些手机在锁屏状态下即使 USB 调试开着系统也可能不允许 adb 执行部分敏感操作所以调试前最好先解锁屏幕或者开启“保持唤醒”选项。第二个是部分新机型对 USB 调试做了一层额外的安全确认比如必须输入锁屏密码才能建立授权这属于正常机制输入密码即可。第三个是macOS 或 Linux 环境下如果设备识别不到可以试试用 sudo 权限重启 adb server有些系统对 USB 设备的访问权限管理得比较严格。还有很多人会问adb 能不能在手机端直接使用答案是手机上装了 Termux 这类终端模拟器之后确实可以以 local 方式使用 adb但大部分日常操作其实不需要在手机本地跑 adb因为系统自带的应用管理、文件管理界面已经能覆盖大多数需求。真正常见的场景还是电脑端通过 adb 来控制手机一条命令解决实际问题。最后说点我自己的感受。这套环境配置说难也难说简单也简单。难在很多人被“SDK”“环境变量”“驱动”这些词吓住了还没开始就觉得自己不行简单在我们把这些词一个个拆开其实背后的逻辑都非常朴素。我自己刚开始接触的时候也走过不少弯路装过完整的 Android Studio配过一整天的 JDK最后发现真正需要的不过是一个 platform-tools。如果你看完这篇内容能顺利在自己电脑上跑通 adb devices并且开始用它解决一些实际的小问题那这篇文章就没白写。以后遇到 adb 相关的新需求也可以顺着这个思路去扩展先想明白自己要做的是什么操作再去查对应的命令用不上的组件一律不装。用最少的环境解决最实际的问题这才是工具存在的意义。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价