adb 详解

目录

背景

目的

[一、设备连接与刷机(ADB / Fastboot)](#一、设备连接与刷机(ADB / Fastboot))

[二、ADB Shell 常用操作](#二、ADB Shell 常用操作)

[三、Windows 批处理(.bat)常用](#三、Windows 批处理(.bat)常用)


ADB(Android Debug Bridge) 是 Android SDK 里的一套客户端--服务端调试桥,用来在电脑和 Android 设备(真机或模拟器)之间传命令、传文件、看日志。

背景

早期 Android 设备没有统一、稳定的 PC 侧调试通道:刷机、装包、抓 log、跑 shell 各自为政。Google 在 Android SDK 里做了 ADB,把这些能力收成一套标准协议和工具链,成为官方调试入口。

它通常由三部分组成:

  1. Client(PC 上的 adb 命令) --- 你敲的 adb shelladb logcat
  2. Server(PC 上的后台进程) --- 管设备连接、转发命令
  3. Daemon(adbd,跑在设备上) --- 在设备侧执行命令、响应请求

连接方式常见是 USB,也可走 TCP/IP(无线调试)。

目的

核心目的:给开发/测试一条可控的设备通道,而不必依赖 App 自己的 UI。常见用途:

目的 典型用法
安装/调试应用 adb installadb shell am start
查看运行状态与日志 adb logcatadb shell dumpsys
文件传输 adb push / adb pull
设备控制与诊断 adb rebootadb shell、权限/属性查看
自动化与 CI 脚本批量连设备、跑测试、抓取现场信息

对相机/HAL 开发来说,ADB 常用来抓 logcat、拉 dump、推 so/配置、切属性,是联调真机时的基础通道。

一句话:ADB 的背景是统一 Android 调试接口;目的是让 PC 能安全、标准地控制与观测设备,支撑开发、测试和问题定位。

执行adb命令前最好手机解锁,现在手机解锁已经开发出了不少工具,一般来说不需要通过fastboot去解锁,只是xts推gsi等镜像文件等需要。不过对应知识可以了解掌握

一、设备连接与刷机(ADB / Fastboot)

用途 命令 说明
检测设备连接 adb devices 正常时显示序列号 + device
等待设备连接后再执行 adb wait-for-device 常放在脚本开头
Fastboot 下检测设备 fastboot devices 需先进入 bootloader
Fastboot 下等待设备 fastboot wait-for-device
重启手机 adb reboot
重启进 EDL adb reboot edl 高通紧急下载模式
进入 Fastboot adb reboot bootloader
解锁(Fastboot) fastboot flashing unlock 会清数据,需确认风险
刷底层分区 fastboot flash <分区> <镜像> 例:fastboot flash boot boot.img
获取 root(adbd) adb root 推库前常需先执行
关闭 verity adb disable-verity 执行后需重启
remount 系统分区 adb remount 首次后常需重启;推库前常用
安装 APK adb install <apk路径> 覆盖安装可用 -r
拉取文件 adb pull <设备路径> [本地路径]
推入文件 adb push <本地路径> <设备路径>

推库常见顺序(示意):

adb rootadb disable-verity → 重启 → adb rootadb remountadb push ...


二、ADB Shell 常用操作

用途 命令 说明
进入 shell adb shell 输入 exit 退出
进入目录 cd <路径> 在 shell 内执行
查看目录 ls 也可 adb shell ls <路径>
新建文件夹 mkdir <路径>
删除文件/目录 rm <路径> / rm -r <目录> 慎用,务必指定目标
创建空文件 touch <文件>
修改权限 chmod <模式> <文件>
杀进程 pkill <进程名>adb shell pkill <进程名>
写内容 echo <内容> > <文件>
查看文件内容 cat <文件>
读设备属性 adb shell getprop / getprop <key>
改设备属性 adb shell setprop <key> <value> 部分属性需权限
截屏 adb shell screencap -p /sdcard/screen.png adb pull 到电脑
模拟点击 adb shell input tap <x> <y> 坐标点击,不是截屏
抓 log adb shell logcatadb logcat

表中 touch / chmod / echo / cat 一般在已进入 adb shell 后使用;也可写成 adb shell touch ... 一次执行。


三、Windows 批处理(.bat)常用

用途 语法 说明 / 示例
隐藏本行回显 @命令 @echo helloworld
关闭后续回显 echo off 常写作 @echo off 放脚本首行
显示内容 echo XXX
注释 rem XXX 也可用 :: 注释
暂停 pause 按任意键继续
重定向 > / >> > 覆盖,>> 追加
新建文件夹 mdmkdir 原表写"mk",正确为 md/mkdir
重命名 rename / ren ren old.txt new.txt
简单变量 set n=1 使用 %n%
交互输入 set /p n=提示: 从键盘读入
命令组合 & / && / `
查找文本 find 在文件中搜字符串

脚本示例

@echo off

adb wait-for-device

adb devices

adb root

adb remount

adb push mylib.so /vendor/lib64/

pause

相关推荐
文人sec3 天前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
2501_916008894 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_916008897 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
鸽芷咕9 天前
MySQL Server 鸿蒙 PC 适配全记录:以混合工具链完成 C++23 交叉编译与 HNP 交付
adb·harmonyos·c++23
游戏开发爱好者812 天前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
实心儿儿12 天前
MySQL 的安装
数据库·mysql·adb
2601_9623004712 天前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发
python·adb·tkinter·android测试·gui自动化
flower_drop14 天前
基于 WebUSB 与 CDP:在浏览器端实现 Android 设备通信与无证书抓包实践
android·chrome·测试工具·adb·bug·edge浏览器
蜡台14 天前
# 已解决|MySQL 8\.4\.11 密码正确仍报错1045 \(28000\) Access denied 终极修复方案
android·mysql·adb
leoZ23114 天前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb