目录
[一、设备连接与刷机(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,把这些能力收成一套标准协议和工具链,成为官方调试入口。
它通常由三部分组成:
- Client(PC 上的
adb命令) --- 你敲的adb shell、adb logcat等 - Server(PC 上的后台进程) --- 管设备连接、转发命令
- Daemon(
adbd,跑在设备上) --- 在设备侧执行命令、响应请求
连接方式常见是 USB,也可走 TCP/IP(无线调试)。
目的
核心目的:给开发/测试一条可控的设备通道,而不必依赖 App 自己的 UI。常见用途:
| 目的 | 典型用法 |
|---|---|
| 安装/调试应用 | adb install、adb shell am start |
| 查看运行状态与日志 | adb logcat、adb shell dumpsys |
| 文件传输 | adb push / adb pull |
| 设备控制与诊断 | adb reboot、adb 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 root → adb disable-verity → 重启 → adb root → adb remount → adb 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 logcat 或 adb logcat |
表中
touch/chmod/echo/cat一般在已进入adb shell后使用;也可写成adb shell touch ...一次执行。
三、Windows 批处理(.bat)常用
| 用途 | 语法 | 说明 / 示例 |
|---|---|---|
| 隐藏本行回显 | @命令 |
@echo helloworld |
| 关闭后续回显 | echo off |
常写作 @echo off 放脚本首行 |
| 显示内容 | echo XXX |
|
| 注释 | rem XXX |
也可用 :: 注释 |
| 暂停 | pause |
按任意键继续 |
| 重定向 | > / >> |
> 覆盖,>> 追加 |
| 新建文件夹 | md 或 mkdir |
原表写"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