ADB 常用命令
文章目录
一、简介
ADB 全称是 Android 调试桥(Android Debug Bridge),是一个命令行工具,作为 Android 和 PC 连接的桥梁,开发者可以通过 ADB 完成安装卸载应用,启动应用,调试程序,文件传输,获取系统配置,修改应用、系统配置等功能。本文目的是介绍一些常用的 ADB 命令,帮助大家在开发工作中提高效率。
二、ADB 服务
1.查看 ADB版本
| |

2.启动 ADB 服务
执行其他部分连接 ADB 命令也会自动启动
| |

3.关闭 ADB 服务
| |
4.查看 ADB 帮助
有时候难免忘记具体命令,查看帮助是个不错的选择
| |
三、设备管理
1.查看连接设备
可查看设备序列号和对应的设备状态
| |

增加-l查看设备更详细信息
| |

2.shell 操作
进入到设备 shell,也可直接不进入在外面执行命令
| |

多台设备时,通过-s指定设备序列号执行
| |
3.重启设备
正常重启
| |
重启到 recovery
| |
重启到 bootloader 界面
| |
4.等待执行
| |
STATE: device, recovery, rescue, sideload, bootloader, disconnect
TRANSPORT: usb, local, any (默认 any)
如等待设备连接
| |
5.root 权限
获取 root 权限,让 ADB 具备更高权限,执行高权限命令
注意:大部分手机设备是没有 root 的,该命令无法获取 root 权限,感兴趣可以尝试安装 ADBD Insecure
| |
退出 root 权限
| |
四、设备信息
1.设备序列号
与adb devices获取到的序列号一致
| |

2.设备状态
与adb devices获取到的状态一致
| |

常见的状态有:
- device:设备正常连接
- offline:设备连接异常,无响应
- unauthorized:未授权无法连接设备,USB 调试重新授权能解决部分该问题
- unknown:未知错误未连接设备
3.设备型号
设备型号存储在系统属性ro.product.model。与adb devices -l获取到的型号一致

查看所有系统属性,属性值很多,感兴趣可自行了解。开发者可通过SystemProperties访问
| |

4.手机 MAC 地址
需要 root 权限来查看文件
| |
5.查看 wlan ip 地址
| |

6.蓝牙信息
蓝牙 MAC 地址
| |

蓝牙名称
| |

蓝牙开关,1 开启,0 关闭
| |

7.电池信息
| |

部分字段的含义如下:
| 字段 | 含义 |
|---|---|
| AC powered | 是否使用 AC 电源 |
| USB powered | 是否使用 USB 电源 |
| Wireless powered | 是否使用无线电源 |
| status | 电池状态。1:未知,2:充电中,3:放电中,4:未充电,5:电池充满 |
| health | 电池健康情况,一般状态是 2。1:未知,2:良好,3:过热,4:没电,5:电压过载,6:未知错误,7:电池环境冷 |
| present | 电池是否存在 |
| level | 电池当前电量,当前电量百分比:(level / scale * 100)% |
| scale | 电池最大容量 |
| voltage | 电池电压,如 4.341V |
| temperature | 电池温度,单位 0.1℃,如 31.7℃ |
| technology | 电池类型,如 Li-poly 为锂电池 |
改变显示的电量值(系统重启自动恢复),注意设置为 0 会导致关机
| |
恢复到实际情况
| |
软件模拟断开充电
| |
8.设备分辨率
查看分辨率
| |

设置分辨率
| |
9.设备密度
查看密度,-d多屏可指定屏幕,默认 0
| |

设置密度
| |

五、应用管理
1.安装应用
-r:覆盖安装
-d:降级安装
-g:授予所有运行时权限
-t:安装测试包
| |

2.卸载应用
| |

3.查看应用信息
查看应用所有信息,包含 Activity、Service、广播、权限、版本、安装路径等信息
| |

过滤应用版本信息
| |

查看设备上安装的所有应用,增加-f可获取应用安装包路径
| |

查看正在运行的 Activity,先 dump Activity 信息,再通过sed命令过滤
| |

4.启动应用
通过 Activity 启动
| |

启动并显示启动耗时
| |

通过 Service 启动
| |
5.停止应用
| |
6.隐藏应用
需要管理权限android.permission.MANAGE_USERS,或者 root 权限
| |
7.查看进程和线程 ID
| |

8.top 查看 CPU 使用情况
| |
如 1s 刷新展示进程 9777 前 10 的线程数据
| |
9.抓取内存情况
系统内存信息
| |

所有进程的内存信息
| |

指定进程的内存详细信息
| |

指定进程的内存值(即详细信息的 Pss TOTAL 值)
| |

10.抓取进程堆信息
抓取到的文件可通过 MAT 等工具来进行分析
| |

11.监控 Activity
| |

六、文件传输
1.从设备导出文件
默认存放在当前目录下
| |

2.把文件导入到设备
| |

七、日志查看
1.抓取日志
| |

2.控制输出字段
-v设置格式,常用的time、thread、threadtime
| |
3.过滤日志
过滤日志级别(V-VERBOSE、D-DEBUG、I-INFO、W-WARNING、E-ERROR、F-FATAL)
| |
过滤日志 tag(实测这种方式效果不太好)
| |
可以通过grep过滤(推荐这种方法,过滤更灵活强大)
| |

4.输出到文件
| |
或者重定向到文件
| |
5.指定缓存区
常见缓存区有main、system、events、crash、radio等
| |
6.缓存区大小
查看缓存区大小
| |

设置缓存区大小,后缀M或者K,不是设置任何值都会生效(比如测试机在 64K - 231M)
| |

7.清空日志缓冲区
| |
八、模拟操作
1.模拟屏幕点击
| |
2.模拟手势滑动
| |
如屏幕右滑,持续 2 秒
| |
3.模拟文本输入
前提是输入框已获得焦点,空格可以通过%s输入
| |
如输入 “1 2 3”
| |
4.模拟键盘输入
| |
如输入删除
| |
常用按键。完整建码见KeyEvent
| key 值 | 功能 |
|---|---|
| 67 | 删除 |
| 21 | 光标左移 |
| 22 | 光标右移 |
| 7 - 16 | 数字 0 - 9 |
5.模拟发送广播
通过action发送广播
| |

指定广播名发送广播,Android O 以上静态注册不能接收大部分隐式广播
| |

还可以携带extra、flag之类的数据
| |

6.屏幕截图
文件名后缀.png将自动保存成 png 图片,或者添加-p来保存,不支持其他格式
| |

7.录制视频
| |

九、连接管理
无线连接
先保证 PC 和设备在同一局域网,然后通过四、设备信息-5.查看 wlan ip 地址获取到设备 ip
| |

如果直接连接默认端口 5555 连接被拒绝,可以先连接 USB 指定端口号,然后连接,连接成功后可拔掉 USB
| |

断开连接
| |

十、小结
本文介绍了 ADB 的常用命令,熟练掌握 ADB 能大幅提升工作效率。当然,ADB 还有很多实用功能,可以自行去深入了解、探索。
文章作者 SeanHHX
上次更新 2022-09-15