adb 详解
目录
背景
目的
一、设备连接与刷机(ADB / Fastboot)
二、ADB Shell 常用操作
三、Windows 批处理(.bat)常用
ADB(Android Debug Bridge) 是 Android SDK 里的一套客户端–服务端调试桥,用来在电脑和 Android 设备(真机或模拟器)之间传命令、传文件、看日志。
背景
早期 Android 设备没有统一、稳定的 PC 侧调试通道:刷机、装包、抓 log、跑 shell 各自为政。Google 在 Android SDK 里做了 ADB,把这些能力收成一套标准协议和工具链,成为官方调试入口。
它通常由三部分组成:
- Client(PC 上的
adb命令) — 你敲的adb shell、adb logcat等 - Server(PC 上的后台进程) — 管设备连接、转发命令
- Daemon(
adbd,跑在设备上) — 在设备侧执行命令、响应请求
连接方式常见是 USB,也可走 TCP/IP(无线调试)。
目的
核心目的:给开发/测试一条可控的设备通道,而不必依赖 App 自己的 UI。常见用途:
| 目的 | 典型用法 |
|---|---|
安装/调试应用 |
|
查看运行状态与日志 |
|
文件传输 |
|
设备控制与诊断 |
|
自动化与 CI | 脚本批量连设备、跑测试、抓取现场信息 |
对相机/HAL 开发来说,ADB 常用来抓logcat、拉 dump、推 so/配置、切属性,是联调真机时的基础通道。
一句话:ADB 的背景是统一 Android 调试接口;目的是让 PC 能安全、标准地控制与观测设备,支撑开发、测试和问题定位。
执行adb命令前最好手机解锁,现在手机解锁已经开发出了不少工具,一般来说不需要通过fastboot去解锁,只是xts推gsi等镜像文件等需要。不过对应知识可以了解掌握
一、设备连接与刷机(ADB / Fastboot)
| 用途 | 命令 | 说明 |
|---|---|---|
检测设备连接 |
| 正常时显示序列号 + |
等待设备连接后再执行 |
| 常放在脚本开头 |
Fastboot 下检测设备 |
| 需先进入 bootloader |
Fastboot 下等待设备 |
| |
重启手机 |
| |
重启进 EDL |
| 高通紧急下载模式 |
进入 Fastboot |
| |
解锁(Fastboot) |
| 会清数据,需确认风险 |
刷底层分区 |
| 例: |
获取 root(adbd) |
| 推库前常需先执行 |
关闭 verity |
| 执行后需重启 |
remount 系统分区 |
| 首次后常需重启;推库前常用 |
安装 APK |
| 覆盖安装可用 |
拉取文件 |
| |
推入文件 |
|
推库常见顺序(示意):adb root→adb disable-verity→ 重启 →adb root→adb remount→adb push ...
二、ADB Shell 常用操作
| 用途 | 命令 | 说明 |
|---|---|---|
进入 shell |
| 输入 |
进入目录 |
| 在 shell 内执行 |
查看目录 |
| 也可 |
新建文件夹 |
| |
删除文件/目录 |
| 慎用,务必指定目标 |
创建空文件 |
| |
修改权限 |
| |
杀进程 |
| |
写内容 |
| |
查看文件内容 |
| |
读设备属性 |
| |
改设备属性 |
| 部分属性需权限 |
截屏 |
| 再 |
模拟点击 |
| 坐标点击,不是截屏 |
抓 log |
|
表中
touch/chmod/echo/cat一般在已进入adb shell后使用;也可写成adb shell touch ...一次执行。
三、Windows 批处理(.bat)常用
| 用途 | 语法 | 说明 / 示例 |
|---|---|---|
隐藏本行回显 |
|
|
关闭后续回显 |
| 常写作 |
显示内容 |
| |
注释 |
| 也可用 |
暂停 |
| 按任意键继续 |
重定向 |
|
|
新建文件夹 |
| 原表写“mk”,正确为 |
重命名 |
|
|
简单变量 |
| 使用 |
交互输入 |
| 从键盘读入 |
命令组合 |
|
|
查找文本 |
| 在文件中搜字符串 |
脚本示例
@echo off
adb wait-for-device
adb devices
adb root
adb remount
adb push mylib.so /vendor/lib64/
pause