ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Ubuntu安装adb全攻略:从安装、配置到设备连接与故障排查

2026/8/5 16:09:52 拓冰建站 浏览量
Ubuntu安装adb全攻略:从安装、配置到设备连接与故障排查

1. 项目概述:为什么在Linux上管理adb是开发者的必修课

如果你是一名移动应用开发者、测试工程师,或者热衷于在手机上折腾各种高级玩法的极客,那么adb(Android Debug Bridge)这个工具对你来说一定不陌生。它就像一座连接电脑和Android设备的桥梁,能让你执行安装应用、调试代码、传输文件甚至获取系统底层权限等一系列操作。虽然Windows和macOS上安装adb相对直观,但当你切换到Linux,尤其是像Ubuntu这样的主流发行版时,可能会发现过程略有不同,甚至有些细节不搞清楚就容易踩坑。

这篇内容,就是为你梳理在Ubuntu(以及其他基于Debian的Linux发行版)上,如何一站式搞定adb的安装、查看版本、彻底卸载以及平滑升级的全过程。这不仅仅是几条命令的罗列,我会结合自己多年在Linux环境下进行Android开发和测试的实际经验,告诉你每个步骤背后的逻辑、可能遇到的“坑”,以及如何选择最适合你的安装方式。无论你是刚接触Linux的新手,还是想优化现有工作流的老手,都能从这里找到直接可用的“抄作业”方案。

2. 核心思路与安装方案选型

在Linux上安装软件,尤其是像adb这样的命令行工具,通常有不止一种方法。不同的方法在便捷性、可维护性和适用场景上各有优劣。在动手之前,我们先理清思路,选择最适合你的那条路。

2.1 主要安装途径对比

对于adb,在Ubuntu上主要有三种获取途径:

  1. 通过系统包管理器安装:即使用apt命令。这是最推荐给大多数用户的方法。
  2. 手动下载Android SDK Platform-Tools:从谷歌官方获取独立的工具包。
  3. 使用Snap包:Ubuntu推崇的另一种软件分发格式。

为了让你一目了然,我整理了它们的核心区别:

特性通过apt安装 (android-tools-adb)手动下载 SDK Platform-Tools通过 Snap 安装
安装便捷性极高。一条命令,自动解决依赖。中等。需手动下载、解压、配置环境变量。高。一条命令,自动更新。
版本新旧较旧。Ubuntu仓库中的版本通常落后于官方最新版。最新。可直接从谷歌开发者网站下载最新版。较新。由社区维护,更新相对及时。
更新管理通过apt update && apt upgrade统一管理。需手动重复下载、替换操作。通过snap refresh自动或手动更新。
环境配置自动完成,安装后全局可用。需手动将解压目录添加到系统的PATH环境变量中。自动完成,通过 Snap 环境隔离运行。
适用场景追求稳定、无需最新功能、希望系统统一管理的用户。开发者、测试人员,需要紧跟官方最新特性或修复。喜欢沙盒化、自动更新体验的 Ubuntu 用户。
可控性一般。依赖仓库维护者。最高。完全自主控制版本和文件位置。较低。受 Snap 沙盒限制,某些低级调试功能可能受限。

2.2 为什么我推荐优先使用apt

对于绝大多数普通用户和大部分开发场景,我首推通过apt安装。原因如下:

  • 省心省力:你不需要关心文件下载到哪、环境变量怎么配。系统帮你打理好一切,安装后直接在终端任何位置输入adb就能用。
  • 系统集成度高:它成为你系统软件包的一部分,卸载、更新都通过标准的包管理流程,不会留下散乱的文件。
  • 足够稳定:虽然版本不是最新,但仓库中的版本都经过发行版维护者的测试,与当前系统兼容性更好,对于基础的调试、安装应用、文件传输等功能完全够用。

当然,如果你明确需要官方刚发布的某个新功能(比如对新款手机型号的初始支持),或者你是一名专业的Android框架开发者,需要精确控制工具链版本,那么手动下载SDK Platform-Tools是更合适的选择。它给你最大的灵活性。

至于Snap方式,它提供了一种折中方案,但考虑到adb有时需要与USB设备深度交互,Snap的严格权限沙盒有时会带来额外的配置步骤(比如需要手动连接raw-usb接口),对新手反而可能增加复杂度。

注意:有些教程会提到通过apt安装adb包,但在较新的Ubuntu版本中,更规范的包名是android-tools-adbadb可能只是一个指向它的虚拟包或过渡包。为了确保安装正确,我们直接使用android-tools-adb

3. 分步详解:安装、查看、卸载、升级全流程

接下来,我们进入实操环节。我会以最推荐的apt方式为主线,并穿插说明手动安装的关键步骤。

3.1 安装adb:一条命令与手动配置

通过apt安装(推荐)

打开你的终端(Ctrl+Alt+T),依次执行以下命令:

# 首先,更新本地软件包列表。这相当于刷新一下软件商店的货架,确保你知道有哪些最新“商品”。 sudo apt update # 然后,安装 adb 工具包。 sudo apt install android-tools-adb

执行完毕后,安装就完成了。你可以在终端里输入adb version来快速验证是否安装成功。

手动安装SDK Platform-Tools(供需要最新版的用户参考)

如果你选择手动安装,步骤如下:

  1. 下载:访问 Android开发者网站 ,找到“Download SDK Platform-Tools for Linux”的链接,下载一个zip文件(如platform-tools-latest-linux.zip)。
  2. 解压:假设你下载到~/Downloads目录。
    cd ~/Downloads unzip platform-tools-latest-linux.zip
    这会解压出一个platform-tools文件夹。
  3. 移动与配置:为了管理方便,我习惯将其移动到/opt~/Android目录下。
    sudo mv platform-tools /opt/
    接下来,需要将adb所在路径添加到系统的PATH环境变量,这样才能在任意位置调用它。编辑你的shell配置文件(通常是~/.bashrc~/.zshrc):
    nano ~/.bashrc
    在文件末尾添加一行:
    export PATH="$PATH:/opt/platform-tools"
    保存退出后,运行source ~/.bashrc使配置生效。
  4. 验证:关闭终端重新打开,或执行source命令后,运行adb version,应该能看到来自“Android Debug Bridge version”的输出,版本号会很新。

3.2 查看当前adb版本与状态

安装后,了解如何查看版本和状态很重要。

  • 查看版本adb version这条命令会输出adb客户端的版本号。这是判断你是否安装成功以及确认当前所用版本的最直接方法。

  • 查看帮助adb --helpadb help列出所有可用的adb命令和简要说明,当你忘记具体命令格式时非常有用。

  • 检查设备连接adb devices这是使用adb前最关键的一步。执行后会列出当前通过USB(或网络)连接到电脑的所有Android设备。如果列表为空或显示unauthorized,说明连接有问题,需要检查USB调试是否开启、USB线是否完好、以及电脑的USB设备识别规则(下文会详述)。

3.3 彻底卸载(删除)adb

如果你需要卸载adb,根据安装方式的不同,操作方法也不同。

卸载通过apt安装的adb

sudo apt remove android-tools-adb

这条命令会移除软件包本身。如果你想同时清除相关的配置文件(通常很少),可以使用:

sudo apt purge android-tools-adb

或者,你想卸载它及其可能被自动安装、但现在不再需要的依赖包:

sudo apt autoremove

清理手动安装的adb

手动安装的卸载其实就是“删除文件+清理环境变量”。

  1. 删除你当初放置的目录,例如:
    sudo rm -rf /opt/platform-tools
  2. 打开之前编辑的shell配置文件(如~/.bashrc),找到并删除添加的export PATH="$PATH:/opt/platform-tools"那一行。
  3. 执行source ~/.bashrc或重启终端。

3.4 更新升级adb

更新通过apt安装的adb

这和你更新系统其他软件一样:

sudo apt update sudo apt upgrade

如果android-tools-adb有可用的更新,它会被一起升级。你可以通过升级前后的adb version来确认版本变化。

更新手动安装的adb

这就是手动安装的麻烦之处:你需要重复手动安装的步骤。

  1. 备份重要数据(如果有)。
  2. 删除旧的/opt/platform-tools目录。
  3. 从官网下载最新的zip包。
  4. 解压并移动到原位(如/opt)。
  5. 由于环境变量指向的是目录,目录内容被整体替换了,所以通常不需要修改PATH,更新即完成。重启终端或source一下配置文件即可生效。

4. 核心环节实现:让Ubuntu正确识别你的Android设备

安装好adb只是第一步,很多新手卡在adb devices列表为空这一步。这是因为在Linux系统上,普通用户默认没有权限直接访问USB设备。我们需要配置一条USB设备识别规则。

4.1 配置USB设备规则(解决no permissions问题)

这是Linux下使用adb最关键的一个配置。请严格按照以下步骤操作:

  1. 连接设备并开启USB调试:在手机的“开发者选项”中开启“USB调试”。用USB线连接手机和电脑。
  2. 查询设备供应商ID(Vendor ID):在终端输入:
    lsusb
    你会看到一长串USB设备列表。找到你的手机设备,它可能显示为“Google Inc.”, “Samsung Electronics Co., Ltd”等。记录下其ID,格式是xxxx:yyyy,其中xxxx就是供应商ID(Vendor ID)。例如,18d1:4ee7中的18d1就是Google的Vendor ID。
  3. 创建规则文件:使用sudo权限创建一个新的规则文件。
    sudo nano /etc/udev/rules.d/51-android-usb.rules
  4. 编写规则内容:在打开的文件中,添加一行规则。将下面的0x18d1替换为你刚才查到的供应商ID(注意加上0x前缀)。
    SUBSYSTEM=="usb", ATTR{idVendor}=="0x18d1", MODE="0666", GROUP="plugdev"
    • SUBSYSTEM=="usb":指定规则针对USB子系统。
    • ATTR{idVendor}=="0x18d1":匹配供应商ID为18d1的设备。
    • MODE="0666":设置设备文件权限为所有用户可读写。
    • GROUP="plugdev":将设备归属于plugdev组(Ubuntu上通常用户已在此组)。
  5. 保存并退出:按Ctrl+X,然后按Y确认,再按Enter保存。
  6. 重新加载udev规则并重启服务
    sudo udevadm control --reload-rules sudo service udev restart # 或者对于使用systemd的系统,也可以尝试: # sudo systemctl restart systemd-udevd.service
  7. 重新插拔设备:拔掉USB线,重新连接手机。再次运行adb devices,你应该能看到设备序列号,后面可能跟着device字样(如果已授权)或unauthorized(需要在手机端点击授权)。

实操心得:如果你有多个不同品牌的Android设备,可以在同一个规则文件里为每个供应商ID添加一行。也可以使用ATTR{idVendor}=="xxxx"来匹配多个。确保你的用户属于plugdev组,可以通过命令groups $USER查看,如果需要添加,使用sudo usermod -aG plugdev $USER,然后注销并重新登录生效。

4.2 无线调试配置(进阶)

除了USB,adb也支持通过TCP/IP网络连接,这在某些场景下非常方便(比如设备不便插线时)。

  1. 确保设备和电脑在同一局域网
  2. 先用USB连接一次,初始化无线调试
    adb tcpip 5555 # 将设备端的adb服务切换到TCP模式,监听5555端口
  3. 断开USB线,查看设备的IP地址(通常在设置-关于手机-状态信息里)。
  4. 通过IP连接
    adb connect 192.168.1.100:5555 # 将IP替换为你设备的实际IP
  5. 连接成功后,adb devices会同时列出有线和无线的设备。

注意事项:无线调试的安全性低于USB。请仅在可信的网络环境中使用。重启手机后,通常需要重新用USB执行一次adb tcpip 5555命令。

5. 常见问题与排查技巧实录

即使按照步骤操作,也可能会遇到问题。这里记录了几个最常见的问题和解决方法。

5.1adb devices列表为空

这是最高频的问题,排查思路如下:

  1. 基础检查
    • 手机端:确认“开发者选项”和“USB调试”已开启。部分手机(如MIUI)还需要额外开启“USB调试(安全设置)”或关闭“MIUI优化”。
    • 线缆与端口:换一条质量好的数据线,并尝试电脑上不同的USB端口。有些线只能充电,不能传输数据。
    • 连接模式:手机连接电脑后,通知栏里USB连接模式是否选成了“文件传输”或“MTP”?有些设备需要这个模式,而有些(如部分华为/荣耀)可能需要选择“仅充电”模式adb才能识别,可以逐一尝试。
  2. Linux权限检查
    • 确认是否已正确配置udev规则(见4.1节)。规则文件中的供应商ID是否正确。
    • 运行groups $USER确认当前用户是否在plugdev组中。
    • 可以临时用root权限测试:sudo adb devices。如果这样能识别,那肯定是普通用户权限问题,回头检查udev规则和用户组。
  3. 进程冲突:有时旧的adb server进程会卡住。尝试:
    adb kill-server # 结束adb服务进程 sudo adb start-server # 以root权限重启服务(临时解决权限问题) adb devices # 再试

5.2 设备显示为unauthorized

这意味着设备连接上了,但尚未在手机上授权此电脑进行调试。

  • 操作:查看手机屏幕,应该会弹出一个“允许USB调试吗?”的对话框,勾选“始终允许”,然后点击“确定”。
  • 如果没弹窗:尝试拔插USB线,或重启手机端的“USB调试”开关。也可以执行adb kill-serveradb start-server重新触发授权请求。

5.3 命令执行报错command not found: adb

这说明系统在PATH环境变量中找不到adb命令。

  • 对于apt安装:极少数情况下安装可能出错。尝试重新安装:sudo apt install --reinstall android-tools-adb
  • 对于手动安装:99%的原因是环境变量PATH没有配置正确。
    • 检查你添加的路径是否正确:echo $PATH
    • 检查你编辑的配置文件是否正确(是.bashrc还是.zshrc?)。
    • 是否执行了source命令或重启了终端?
    • 规则文件或目录的权限是否正确?确保/opt/platform-tools/adb文件有可执行权限 (chmod +x /opt/platform-tools/adb)。

5.4 升级系统或adb后出现兼容性问题

如果你通过apt升级了系统或adb,有时可能会遇到与新设备或新系统版本的兼容性问题。

  • 排查:首先确认问题是否由版本引起。通过adb version查看当前版本,并与 官方发布说明 对比,看是否缺少对新设备的必要支持。
  • 解决:如果确认是版本过旧,而仓库版本又未更新,那么最直接的办法就是改用手动安装最新版SDK Platform-Tools。按照3.1节的手动安装步骤,将新版工具包解压到新目录(如/opt/platform-tools-new),并临时修改你的PATH指向新目录进行测试。测试无误后,可以替换旧的配置。

5.5 使用Snap版adb的额外问题

如果你选择了Snap安装方式,可能会遇到:

  • 无法访问USB设备:即使配置了udev规则,Snap的严格沙盒也可能阻止其访问。你需要手动连接相应的Snap接口:
    sudo snap connect android-tools-adb:raw-usb # 允许访问原始USB设备 sudo snap connect android-tools-adb:adb-support # 连接adb支持接口
    执行后,可能需要重启adb服务或重新插拔设备。

管理adb工具链是Android相关开发在Linux平台上的基础。从选择最适合的安装方式,到搞定设备连接权限,每一步都蕴含着对Linux系统权限管理和软件包管理的理解。我个人最深刻的体会是,遇到devices列表为空时,不要慌张,按照“手机端设置 -> 线缆与端口 -> 系统权限规则 -> 进程冲突”这个顺序进行排查,九成以上的问题都能解决。把udev规则配好,更是一劳永逸的做法。最后,根据你的实际需求在“系统管理的便捷”和“版本最新的灵活”之间做出选择,能让你的开发环境更加得心应手。