加油,打工人,今天又是美好的一天

十四郎君

一日不思量,也攒眉千度

adb 命令简介

一、什么是 adb?
adb 全称 Android Debug Bridge,中文名叫做 Android 调试桥,是一种功能多样的命令行工具,可以对设备进行操作。
adb 命令可用于执行各种设备操作(如安装和调试应用),并提供一些访问权限(清除应用数据等)。
它是一种客户端-服务端的程序,包括三个组件:
  1. 客户端:用于发送命令。客户端在计算机上运行,可以通过 adb 命令从命令行终端调用客户端
  2. 守护程序(adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  3. 服务器:用于管理客户端和守护程序之间的通信。服务器在开发机器上作为后台进程运行。

二、 adb 工作原理
  1. 启动 adb 客户端时(不需要人为启动),该客户端会先检查是否有 adb 服务器进程正在运行
  2. 如果没有,客户端会启动一个服务进程,该服务器在启动后会于本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令(所有 adb 客户端均通过端口 5037 与 adb 服务器通信)
  3. 服务器会与所有正在运行的设备进行连接。它通过扫描 5555 到 5585 之间(该范围供前16个模拟器使用)的奇数号端口来查找模拟器。服务器一旦发现 adb 守护程序(adbd),便会与相应的端口建立连接。注意:每个模拟器都使用一对按顺序排列的端口(用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口)
    模拟器 1,控制台:5554
    模拟器 1,adb:5555
    模拟器 2,控制台:5556
    模拟器 2,adb:5557
    依此类推
    如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。
  1. 服务器与所有设备均建立连接后,便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此可以从任意客户端(或从某个脚本)控制任意设备。

三、常见 adb 命令
  1. 显示系统中全部设备:adb devices
  2. 列出手机装的所有app的包名:adb shell pm list packages
  3. 列出系统应用的所有包名:adb shell pm list packages -s
  4. 列出除了系统应用的第三方应用包名: adb shell pm list packages -3
  5. 清除应用数据与缓存:adb shell pm clear (apk包名)(以爱奇艺为例)
  6. 获取正在运行的Activity:adb shell dumpsys activity activities(获取到activity可在打开应用时使用)
  7. 启动应用:adb shell am start -n com.qiyi.video/.WelcomeActivity(以第6步骤中获取的爱奇艺activity为例)

四、总结
更多 adb 命令请查阅 Android 官网,adb 是我们做 android 测试必备的技能,不光是结合 uiautomator 使用,其次还在性能方法查看内存,cpu,流量等的变化。

 

posted @ 2021-02-10 14:27  十郎  阅读(3863)  评论(0编辑  收藏  举报