一、ADB 简介
二、ADB的工作方式
三、ADB常用命令


一、ADB 简介

ADB(Android Debug Bridge) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。该工具作为一个客户端-服务器程序。


  • 客户端,该组件发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 后台程序,该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。
  • 服务器,该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。

adb 工具路径

​android_sdk/platform-tools/​

二、ADB的工作方式

1. 连接 Android 模拟器

ADB与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令—所有 adb 客户端均使用端口 5037 与 adb 服务器通信。然后,服务器设置与所有运行的Android模拟器/Android 设备连接。

2.USB 连接 Android 机器

  • a. 打开开发者选项

Settings >About phone>连续点击 Build number七次


  • b. 开启 USB debugging
  • c .Dos 下输入adb devices验证手机是否连上 adb

ADB 你想找的命令都在这里_客户端

验证adb 是否连接成功

3.WLAN 连接 Android 机器

此方法不常用,暂时忽略

三、ADB常用命令

1. 安装卸载apk

  • a. 安装apk

​adb install apk路径​

ADB 你想找的命令都在这里_客户端_02

安装apk

  • b. 卸载apk

​adb unstall apk包名​

ADB 你想找的命令都在这里_包名_03

查询包名,并根据包名卸载apk

2. 导入/导出 文件到手机中

  • a. 导出手机文件

​adb pull remote local​

ADB 你想找的命令都在这里_包名_04

将手机Setting.apk 导出到电脑D盘

  • b. 导入文件到手机

​adb push local remote​

ADB 你想找的命令都在这里_包名_05

将电脑D 盘的文件 导入到手机/system/priv-app/Settings目录下

3.开启、停止ADB 服务

  • a. 开启ADB 服务

​adb start-server​

  • b. 停止ADB服务

​adb kill-server​

ADB 你想找的命令都在这里_android_06

ADB 服务的开启与停止

4. 使用ADB 命令截屏、录像

  • a. 截屏 screencap

​adb shell screencap 文件保存路径​

ADB 你想找的命令都在这里_android_07

使用adb 命令截图

  • b. 录像 screenrecord

​adb shell screenrecord 文件保存路径​

ADB 你想找的命令都在这里_android_08

使用adb 命令录屏录像

按 Control + C 停止屏幕录制,否则,到三分钟或 ​​--time-limit​​ 设置的时间限制时,录制将自动停止。

screenrecord 部分参数

选项

说明

--size width x height

设置分辨率 eg:1280x720

--bit-rate rate

视频比特率,默认值为 4Mbps,可以设6Mbps,这样质量更好 eg:​​adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4​

--time-limit time

设置最大录制时长(以秒为单位)。默认值和最大值均为 180(3 分钟)。

5. 调用ActivityManager(am 命令)

  • a. 发送 intent

​adb shell am start -a android.intent.action.VIEW​

  • b.启动Activity

​adb shell am start -n 包名/类名​

ADB 你想找的命令都在这里_客户端_09

启动QQ

  • c. 启动service

​adb shell am startservice 包名/类名​

ADB 你想找的命令都在这里_android_10

启动指定的Service

  • d. 发送广播

​adb shell am boradcast -a 广播Action​

ADB 你想找的命令都在这里_客户端_11

adb 命令发送开机广播

  • e. 强行停止应用

​adb shell force-stop 包名​

ADB 你想找的命令都在这里_android_12

强行停止QQ进程,正在使用的QQ就会闪退被杀掉

6. 调用 PackageManager(pm 命令)

  • a. 卸载apk

​adb shell pm uninstall 包名​

ADB 你想找的命令都在这里_客户端_13

卸载QQ

  • b. 查看手机中所有apk 包名

​adb shell pm list packages​

ADB 你想找的命令都在这里_android_14

部分apk包名查看

  • c. 查看已知权限组

​adb shell pm list permission-groups​

ADB 你想找的命令都在这里_android_15

所有手机权限组查看

  • d. 查看手机Feature 支持

​adb shell pm list features​

ADB 你想找的命令都在这里_android_16

查看手机Feature

  • e. 根据包名,查看apk 安装路径

adb shell pm path 包名

ADB 你想找的命令都在这里_包名_17

查看SystemUI apk 路径

  • f. 清除app 数据

​adb shell pm clear 包名​

ADB 你想找的命令都在这里_包名_18

清除QQ apk 数据

  • g. 多用户相关

查看支持最多用户数

​adb shell pm get-max-users​

查询系统所有用户

​adb shell pm list users​

创建新用户

​adb shell pm create-user user_name​

移除指定id用户

​adb shell pm remove-user user_id​

ADB 你想找的命令都在这里_客户端_19

测试发现只有 使用adb 命令创建的多用户才可用命令移除

7. dumpsys将系统数据转储到屏幕

  • a. 获取当前运行的Activity

​adb shell dumpsys activity | findstr Run​

ADB 你想找的命令都在这里_客户端_20

获取最近运行的Activity ,已经Top Activity

8. 查看手机系统进程

  • a.使用Top命令查看系统进程

​adb shell top​

ADB 你想找的命令都在这里_android_21

使用Top命令查看系统进程

  • b. 使用 ps 命令查看系统进程

​adb shell ps​

ADB 你想找的命令都在这里_android_22

使用 ps 命令查看系统进程

结合findstr 命令 过滤多余的信息 ​​adb shell ps | findstr qq​

ADB 你想找的命令都在这里_android_23

结合findstr 命令 过滤多余的信息

9. 使用logcat抓 log信息

  • a.使用 logcat 抓取log信息

​adb logcat > 1.txt​

ADB 你想找的命令都在这里_客户端_24

使用logcat 抓取的信息

  • b.使用 -s 过滤log标签

​adb logcat -s 关注log标签​

ADB 你想找的命令都在这里_客户端_25

使用-s 过滤关注log标签

  • c. 使用 -c 清除缓存log

​adb logcat -c​

10. 电量管理相关命令

  • a.模拟拔下设备电源

​adb shell dumpsys battery unplug​

  • b. 低电量条件下的行为

​adb shell settings put global low_power 1​

  • c .恢复电源修改

​adb shell dumpsys battery reset​

ADB 你想找的命令都在这里_android_26

电源管理相关命令