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

相关推荐
九皇叔叔1 天前
MySQL ORDER BY 性能优化详解:Using filesort、联合索引、ASC/DESC 与覆盖索引
android·adb
firstacui3 天前
Mysql调优
android·mysql·adb
醉颜凉3 天前
MySQL 8 忘记 root 密码?这两种方法帮你轻松解决
数据库·mysql·adb
2601_962063233 天前
【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用
spring boot·spring·adb
小成很成5 天前
mysql 8.0.21 升级 mysql 8.0.45(经过生产环境验证)
android·mysql·adb
2501_916007476 天前
免费抓包工具 Windows 和 Mac 怎么选?根据平台来选择工具
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_916008896 天前
iOS App 请求地址查看,不用配置看到 App 调了哪些接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
码云数智-园园7 天前
PHP 性能优化实战:从 3s 到 300ms,我是怎么优化一个接口的?
android·adb
2501_915918418 天前
Rust 程序抓包解密,rustls 不认系统证书的几种办法
开发语言·后端·网络协议·ios·adb·https·rust
Free飝Fly8 天前
Android13及更新版本开启user版本adb root remount
adb