恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Ubuntu系统ADB安装配置全攻略:从原理到实战解决设备连接问题

  • 首页
  • 资讯中心
  • /
  • Ubuntu系统ADB安装配置全攻略:从原理到实战解决设备连接问题

相关资讯

数据库表间数据迁移:从基础语法到企业级实践全解析 2026/8/17 6:01:07
MySQL数据迁移实战:从INSERT INTO SELECT到Binlog同步的完整方案 2026/8/17 6:01:07
层次分析法(AHP)全解析:从原理到实战,数学建模必备决策工具 2026/8/17 6:01:07

最新资讯

BK7238芯片资料获取与实战开发全解析:从规格书到低功耗物联网产品
潜在动作重参数化:提升LLM Agent推理效率与降低延迟的关键技术
企业AI集成实战:基于Watsonx与OpenAI构建安全智能应用
数学建模竞赛时间管理:从“三天幻觉”到四天高效作战的实战指南
数学建模美赛96小时极限冲刺:时间管理、团队协作与高效建模实战指南
华为手机忘记密码解锁全攻略:从FRP锁原理到官方与第三方方案解析

今日推荐

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题
LabVIEW异步调用实战:解决界面卡顿与并行处理难题
飞书局域网文件传输实战:3种方案实现高速点对点传输

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Ubuntu系统ADB安装配置全攻略:从原理到实战解决设备连接问题

发布时间:2026/8/17 6:01:07
Ubuntu系统ADB安装配置全攻略:从原理到实战解决设备连接问题 1. 项目缘起为什么在Ubuntu上折腾ADB作为一名常年混迹于移动开发、设备测试或者智能硬件折腾圈的朋友你肯定对ADBAndroid Debug Bridge不陌生。它就像一把万能钥匙能让你通过命令行与安卓设备进行深度交互从安装卸载应用到抓取日志、刷机调试无所不能。但很多时候我们的主力开发环境是Windows或macOS相关的教程铺天盖地。一旦切换到Linux特别是像Ubuntu这样的桌面发行版很多看似简单的步骤就会遇到一些小门槛。我最初在Ubuntu上配置ADB是因为需要在一台Linux服务器上远程管理一批测试设备以及在自己的Ubuntu桌面环境下调试一些物联网设备。过程算不上复杂但确实有几个细节如果不注意就会卡在“设备未授权”或者“命令找不到”的环节白白浪费不少时间。网上的教程虽然多但有些过于简略有些又假设你已经具备了完整的Linux知识背景对于刚接触Ubuntu的开发者来说并不友好。所以这篇内容我想抛开那些笼统的步骤结合我自己的实操经验和踩过的坑从头到尾、掰开揉碎地讲清楚在Ubuntu系统上安装和配置ADB的完整过程。我们的目标不仅仅是把ADB装上更要理解每一步在做什么以及当出现“adb devices”列表空空如也或者提示“unauthorized”时我们该如何系统地排查和解决。无论你是为了开发、测试还是单纯想用电脑管理你的安卓手机或电视盒子这篇指南都能让你在Ubuntu上把ADB玩得转。2. 核心概念与准备工作ADB到底是什么在动手之前我们花几分钟把ADB的核心概念和我们的准备工作理清楚。这能帮你更好地理解后续的操作而不是机械地复制命令。2.1 ADB的组成与工作原理ADB并不是一个单一的二进制文件而是一个客户端-服务器架构的工具集主要包含三个部分ADB Client客户端这就是你在终端里运行的adb命令。你输入的任何指令比如adb devices、adb install都是由这个客户端发出的。ADB Server服务器这是一个在后台运行的守护进程。当你第一次执行任何adb命令时它会自动启动。它的工作是管理客户端与所有已连接设备包括实体设备和模拟器之间的通信。一个服务器实例可以同时为多个客户端请求服务。ADB Daemonadbd守护进程这个进程运行在安卓设备或模拟器内部。它负责监听来自ADB Server的连接并执行接收到的命令。当你通过USB线连接设备并执行adb devices时整个过程大致如下Client将指令发给本机的ServerServer发现有一个新设备连接会尝试与设备内的adbd建立连接。此时设备端会弹出一个“是否允许USB调试”的授权对话框RSA密钥指纹验证。一旦你点击允许Server和adbd之间就建立了一条安全的通信链路之后Client的所有指令都能通过这条链路送达设备执行。理解这个架构非常重要。它解释了为什么有时候需要重启adb服务器adb kill-server然后adb start-server也解释了“未授权unauthorized”状态的由来——就是设备端的adbd还没有对当前电脑的Server给予通信许可。2.2 环境准备确认你的Ubuntu系统在开始安装前请先打开终端快捷键CtrlAltT确认一下你的Ubuntu版本和架构。这关系到我们后续选择哪种安装方式最合适。# 查看系统版本信息 lsb_release -a # 或者查看更简明的版本号 cat /etc/os-release | grep VERSION_ID # 查看系统是64位还是32位 uname -m常见的输出会是类似“Ubuntu 22.04 LTS”和“x86_64”即64位。目前主流的Ubuntu版本20.04, 22.04, 24.04基本都是64位系统。我们将以Ubuntu 22.04 LTS作为主要环境进行演示其他版本的操作大同小异。另一个重要的准备工作是确保你的设备已开启开发者选项和USB调试。这个步骤在设备上进行进入手机的“设置” - “关于手机”连续点击“版本号”7次直到出现“您已处于开发者模式”的提示。返回设置找到新出现的“开发者选项”或“系统”-“开发者选项”。在开发者选项中找到并开启“USB调试”开关。注意不同品牌、不同安卓版本的手机开启开发者选项的路径可能略有差异但“连点版本号”这个方法是通用的。3. 安装ADB三种主流方法详解与选型在Ubuntu上安装ADB主要有三种途径通过官方仓库、直接下载Android SDK Platform-Tools包、或者使用Snap。每种方法各有优劣我会详细说明步骤和背后的考量。3.1 方法一通过apt官方仓库安装最便捷这是最简单、最系统化的方法适合绝大多数只想快速使用ADB基础功能的用户。# 首先更新本地软件包索引 sudo apt update # 然后安装adb和fastboot包 sudo apt install android-tools-adb android-tools-fastboot -y执行原理与注意事项sudo apt update这个命令并不是在升级系统而是刷新本地的软件源列表信息确保你知道的软件版本是最新的。这是安装前的好习惯。android-tools-adb这个包提供了adb客户端和服务器。android-tools-fastboot这个包提供了fastboot工具用于刷机等底层操作。通常我们建议一并安装以备不时之需。-y参数表示对安装过程中的所有确认提示都自动回答“yes”让安装过程无需人工干预。优点简单快捷两条命令搞定依赖关系自动处理。易于管理后续可以通过sudo apt upgrade统一更新。缺点版本可能较旧Ubuntu官方仓库为了稳定性收录的软件版本往往不是最新的。例如在Ubuntu 22.04中通过apt安装的ADB版本可能停留在较旧的版本。对于需要最新ADB功能例如支持最新安卓版本设备的用户来说这可能是个问题。安装后验证adb --version如果安装成功会输出ADB的版本信息。记下这个版本号。3.2 方法二下载官方Platform-Tools推荐版本可控如果你需要最新的ADB功能或者希望更灵活地管理版本比如同时保留多个版本那么直接从Android开发者网站下载Platform-Tools压缩包是最佳选择。这也是Google官方推荐的方式。步骤1下载最新版Platform-Tools访问 Android开发者网站的平台工具页面 找到Linux平台的下载链接。你可以直接在浏览器下载或者用终端里的wget命令以下链接为示例请以官网最新链接为准# 进入用户主目录的“下载”文件夹 cd ~/Downloads # 使用wget下载请替换为官网最新的链接 wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip # 如果系统没有wget可以使用curl # curl -O https://dl.google.com/android/repository/platform-tools-latest-linux.zip步骤2解压到合适目录通常我们会将其解压到用户主目录下的某个目录例如~/Android或~/tools。# 创建目标目录如果不存在 mkdir -p ~/Android # 解压下载的zip文件到目标目录 unzip platform-tools-latest-linux.zip -d ~/Android/现在ADB的可执行文件就在~/Android/platform-tools/目录下了。步骤3将ADB添加到系统PATH环境变量这是最关键的一步目的是让系统在任何终端路径下都能识别adb命令。我们需要编辑shell的配置文件。根据你使用的shell通常是bash或zsh配置文件不同。对于Bash默认# 使用文本编辑器如nano打开bash配置文件 nano ~/.bashrc在文件的末尾添加以下一行export PATH$HOME/Android/platform-tools:$PATH按CtrlX然后按Y再按Enter保存并退出。对于Zshnano ~/.zshrc同样在文件末尾添加export PATH$HOME/Android/platform-tools:$PATH并保存。步骤4使配置生效添加PATH后需要重新加载配置文件才能使更改在当前终端生效。# 如果是Bash source ~/.bashrc # 如果是Zsh source ~/.zshrc或者更简单的方法是关闭当前终端窗口重新打开一个新的终端。步骤5验证安装adb --version此时你应该能看到比通过apt安装更新的版本号。优点版本最新直接获取Google官方发布的最新版本。独立灵活不干扰系统包管理可以方便地切换或并存多个版本。缺点步骤稍多需要手动下载、解压和配置PATH。需手动更新新版发布后需要重复下载和解压步骤并覆盖旧文件或更新PATH指向。3.3 方法三通过Snap安装可选Ubuntu近年来力推Snap包格式。如果你喜欢这种自动更新的沙盒化应用也可以选择它。sudo snap install android-tools-adb --classic--classic参数是因为ADB需要访问系统硬件如USB所以需要突破Snap的严格沙盒限制。优点自动更新隔离性好。缺点有时可能会因为沙盒权限问题在访问特定USB设备时遇到麻烦对新手排查不友好。个人建议对于ADB这种需要深度系统集成的工具优先选择方法一求简单或方法二求新求控制。Snap方式可以作为备选。4. 配置USB连接与设备授权解决“未找到设备”和“未授权”安装完ADB后第一个挑战往往是连接设备。很多人在这一步卡住输入adb devices后只看到一个空列表或者unauthorized的设备。4.1 配置USB设备访问权限关键步骤在Linux系统中普通用户默认无法直接访问USB设备。当你用USB线连接安卓设备时该设备在系统中被视为一个usb设备文件通常位于/dev/bus/usb/下。我们需要创建一个规则文件让系统在设备插入时自动赋予当前用户组访问权限。步骤1确定设备的厂商IDVendor ID和产品IDProduct ID首先用USB线连接你的安卓设备并确保设备已处于“文件传输”或“仅充电”模式只要不是“仅充电”模式通常都可以但“文件传输MTP”模式最通用。在终端中输入lsusb你会看到一串连接的USB设备列表。找到描述中包含“Android”、“Google”、“Phone”或你手机品牌如“Xiaomi”、“Samsung”的那一行。例如Bus 003 Device 027: ID 18d1:4ee2 Google Inc. Nexus 4 (debug)这里18d1就是厂商IDVendor ID4ee2就是产品IDProduct ID。请记下你的设备对应的这两个ID。步骤2创建USB规则文件我们需要创建一个新的udev规则文件。使用sudo权限编辑一个新文件sudo nano /etc/udev/rules.d/51-android-usb.rules在打开的文件中添加以下一行规则请将18d1和4ee2替换为你刚才记下的IDSUBSYSTEMusb, ATTR{idVendor}18d1, ATTR{idProduct}4ee2, MODE0666, GROUPplugdev规则解释SUBSYSTEMusb匹配USB子系统。ATTR{idVendor}18d1匹配属性厂商ID。ATTR{idProduct}4ee2匹配属性产品ID。MODE0666设置设备文件权限为对所有用户可读可写。GROUPplugdev将设备所属组设置为plugdevUbuntu上普通用户通常属于这个组。如果你的设备有多个模式如正常连接和fastboot模式它们的产品ID可能不同。一个更通用的做法是只指定厂商ID这样该品牌的所有设备都会被规则覆盖SUBSYSTEMusb, ATTR{idVendor}18d1, MODE0666, GROUPplugdev常见的厂商ID有Google (18d1), HTC (0bb4), Samsung (04e8), Sony (054c), Huawei (12d1), Xiaomi (2717)等。步骤3重新加载udev规则并重启服务保存并退出编辑器CtrlXYEnter。然后让系统重新加载这些规则sudo udevadm control --reload-rules sudo udevadm trigger或者最彻底的方法是重新拔插USB线或者重启电脑。步骤4将用户添加到plugdev组通常不需要检查你的用户是否已在plugdev组中groups $USER如果输出中包含plugdev则跳过此步。如果没有可以手动添加sudo usermod -aG plugdev $USER注意执行此命令后你需要注销当前用户并重新登录或者开启一个新的登录会话例如通过su - $USER组更改才会生效。4.2 处理设备授权RSA密钥交换权限配置好后再次执行adb devices。这次你可能会看到设备被列出了但状态是unauthorized。List of devices attached ABCDEF0123456789 unauthorized这是因为设备还没有信任你这台电脑。此时你应该查看你的安卓设备屏幕会弹出一个“允许USB调试吗”的对话框上面显示了你这台电脑的RSA密钥指纹。必须做的操作勾选“始终允许此计算机”这样下次连接时就不会再弹窗。点击“允许”。点击允许后终端里的设备状态会立刻变为device。List of devices attached ABCDEF0123456789 device这个授权信息会保存在设备的/data/misc/adb/adb_keys和电脑的~/.android/adbkey.pub中。以后连接就畅通无阻了。重要心得很多“未授权”问题根源在于用户忽略了设备屏幕上的授权弹窗。请务必养成连接后第一时间查看设备屏幕的习惯。如果误点了“拒绝”可以尝试在设备上“撤销USB调试授权”在开发者选项里然后重新拔插USB线。5. 实战ADB常用命令与高阶技巧连接成功后ADB的世界就向你敞开了大门。这里介绍一些最常用和实用的命令并分享一些操作技巧。5.1 设备与连接管理adb devices列出所有已连接的设备包括模拟器。这是最常用的诊断命令。adb kill-server/adb start-server强制重启ADB服务器。当连接出现诡异问题时比如设备列表不对、命令无响应这是万能的第一步。adb connect IP:PORT通过网络连接设备。需要在设备的开发者选项中开启“无线调试”并获取其IP和端口。适合无线测试场景。adb disconnect IP:PORT断开网络连接。adb usb切换回USB连接模式。5.2 文件与安装操作adb push local remote将电脑文件推送到设备。例如adb push app.apk /sdcard/。adb pull remote local将设备文件拉取到电脑。例如adb pull /sdcard/screenshot.png ~/Desktop/。adb install -r app.apk安装应用。-r参数表示覆盖安装更新。adb install -d app.apk允许降级安装版本号比已安装的低。adb uninstall package.name卸载应用。需要知道应用的包名可以用adb shell pm list packages查找。安装技巧安装大型APK或遇到速度慢时可以先用adb push将APK传到设备sdcard然后在设备上用adb shell pm install命令安装有时会更快。5.3 Shell与系统交互adb shell让你进入设备的命令行环境。直接输入adb shell进入交互模式或者在命令后追加shell命令直接执行。adb shell pm list packages列出所有已安装应用的包名。可以配合grep过滤如adb shell pm list packages | grep google。adb shell am start -n package/activity启动一个应用 Activity。需要知道具体的组件名可以通过logcat抓取或反编译APK获得。adb shell input模拟输入事件如点击、滑动、文本输入。非常适用于自动化脚本。adb shell input tap 500 500在屏幕坐标(500,500)处点击。adb shell input swipe 300 1000 300 500从(300,1000)滑动到(300,500)。adb shell input text hello输入文本“hello”注意不支持中文。adb shell screencap -p /sdcard/screen.png截屏并保存到设备。adb shell screenrecord /sdcard/demo.mp4开始录屏默认180秒按CtrlC停止。5.4 日志与调试adb logcat查看系统日志。信息量巨大通常需要过滤。adb logcat -s TAG查看特定标签的日志。adb logcat -v time *:E查看所有错误级别的日志并带时间戳。adb logcat -c清空日志缓冲区。adb bugreport生成一个包含系统状态、日志等完整信息的bugreport压缩包对于分析复杂问题至关重要。日志分析心得对于应用开发最好在代码中定义好独特的日志TAG然后用adb logcat -s MyAppTAG来过滤这样信息最干净。对于系统级问题adb bugreport生成后可以用chkbugreport等工具进行可视化分析效率更高。6. 疑难杂症排查指南即使按照步骤操作也可能会遇到问题。这里汇总一些常见问题的排查思路。6.1 设备始终不在adb devices列表中检查基础连接换一根质量好的USB数据线很多问题是劣质线导致的只能充电不能传输数据。尝试电脑上不同的USB接口特别是机箱后部直接连主板的接口。在设备上切换USB连接模式尝试“文件传输MTP”、“PTP图片传输”或“仅充电”有些设备在“仅充电”模式下也能调试。检查开发者选项确认“USB调试”开关确实已打开。检查udev规则确认lsusb能识别到设备。确认/etc/udev/rules.d/51-android-usb.rules文件内容正确且ID匹配。执行sudo udevadm control --reload-rules sudo udevadm trigger后重新拔插设备。检查设备文件权限连接设备后ls -l /dev/bus/usb/xxx/yyyxxx和yyy是lsusb显示的Bus和Device号看权限是否是crw-rw-rw-。重启ADB服务执行adb kill-server然后重新插拔设备再执行adb devices。检查用户组确认当前用户属于plugdev组且已重新登录。6.2 设备状态为unauthorized或offline查看设备屏幕这是最常见原因确保你点击了“允许USB调试”的弹窗并勾选了“始终允许”。撤销授权重试在设备的“开发者选项”中找到“撤销USB调试授权”点击撤销。然后重新拔插USB线再次授权。删除电脑上的密钥文件删除电脑上的~/.android/adbkey和adbkey.pub文件注意这会让你所有已授权设备需要重新授权然后重启adb服务 (adb kill-server; adb start-server)。检查ADB版本设备端的adbd和电脑端的ADB版本如果差异过大可能导致授权失败。尝试将电脑端的ADB升级到最新版本使用方法二。6.3 网络ADB连接失败确保在同一网络电脑和设备必须在同一个局域网内。获取正确的IP和端口在安卓11及以上需要在开发者选项的“无线调试”里获取配对码和端口。通常需要先用adb pair IP:PORT输入配对码配对再用adb connect IP:PORT连接。防火墙检查电脑防火墙是否屏蔽了ADB使用的端口默认5555。先USB后无线有时可以先用USB线连接然后执行adb tcpip 5555命令让设备在5555端口启动TCP/IP监听再拔掉USB线执行adb connect 设备IP:5555。6.4 执行命令报错error: no devices/emulators found这个错误意味着adb devices列表为空但ADB客户端试图执行命令。请先回到6.1的步骤确保设备被正确识别并列出。7. 进阶配置与自动化脚本当你熟练使用基本命令后可以通过一些配置和脚本让工作更高效。7.1 配置ADB环境变量别名你可以为常用的复杂ADB命令设置别名Alias添加到你的~/.bashrc或~/.zshrc中。# 常用别名示例 alias adbdadb devices alias adbkadb kill-server alias adbsadb start-server alias adbladb logcat -v time | grep -i error alias adbpulladb pull /sdcard/DCIM/Camera/ ~/Pictures/PhoneCamera/保存后执行source ~/.bashrc就可以用adbd代替adb devices了。7.2 编写简单的自动化脚本假设你每天需要从测试设备拉取日志可以写一个Bash脚本pull_logs.sh#!/bin/bash # 定义变量 DEVICE_SERIAL$(adb devices | grep -w device | awk {print $1}) DATE$(date %Y%m%d_%H%M%S) LOG_DIR~/Desktop/DeviceLogs_${DATE} if [ -z $DEVICE_SERIAL ]; then echo 错误未找到已连接的设备。 exit 1 fi echo 正在从设备 $DEVICE_SERIAL 拉取日志... mkdir -p $LOG_DIR # 拉取日志文件 adb pull /data/local/tmp/app_logs/ $LOG_DIR/ adb logcat -d -v time $LOG_DIR/full_logcat_${DATE}.txt adb bugreport $LOG_DIR/ echo 日志已保存至$LOG_DIR给脚本添加执行权限chmod x pull_logs.sh然后就可以运行了。7.3 使用ADB over WiFi进行无线调试Android 11对于Android 11及以上设备无线调试更加稳定。操作流程如下设备与电脑连接到同一个WiFi网络。在设备上进入“开发者选项” - “无线调试”。点击“使用配对码配对设备”。记下显示的IP地址、端口和6位配对码。在电脑终端执行adb pair IP:端口然后根据提示输入配对码。输出“Successfully paired...”表示成功。配对成功后“无线调试”页面会显示一个用于连接的IP地址和端口可能与配对的不同。在电脑终端执行adb connect IP:连接端口。现在可以像使用USB一样使用ADB命令了adb devices会显示一个通过网络连接的设备。无线调试非常适合需要频繁移动设备或USB口紧张的场景能极大提升工作效率。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号