adb简介

adb的全称为Android Debug Bridge,安卓调试桥。

使用命令来对安卓手机进行一些操作,借助adb可以编写一些脚本来实现一些对安卓手机自动化操作的功能。

adb工作原理

adb采用客户端-服务端模型(C/S),包括三个部分:

  • 客户端client
  • 服务端server
  • 守护进程daemon

adb环境搭建

  • Java 1.8
  • Android SDK

JDK安装配置

推荐jdk1.8版本(即java 8)

Java环境准备贴-Windows

jdk1.8下载地址

Android SDK安装配置

Android SDK的下载与安装

连接手机设备及查看设备状态

Android模拟器种类

  • Android Studio emulator (官方)
  • genymotion(依赖网络)
  • mumu,雷电,夜神,逍遥等第三方模拟器

真机连接电脑

  • 进入开发者模式
  • 进入开发者选项
  • 打开USB调试

输入adb devices或者adb get-state,检查设备是否已经连接以及设备连接状态:

  • device 正常
  • offline 连接出现异常,设备无响应
  • unauthorized 未授权

image-20220711154355890

  • 小米手机可以在开发者选项中打开USB调试(安全设置)来进行授权

使用adb kill-server命令关闭服务

adb命令格式/安装卸载

adb命令格式

abd [-d|-e|-s <serialNumber>] <command>

  • -d指定当前唯一通过USB连接的Android设备为命令目标
  • -e指定当前唯一运行的模拟器为命令目标
  • -s指定响应的设备为命令目标

卸载apk

  • 普通安装adb install <apk路径>

  • 覆盖安装/替代安装adb install -r <apk路径>

  • 使用adb命令安装office lens

adb install C:\Users\xiaophai\Downloads\com.microsoft.office.officelens_16.0.14527.20178_liqucn.com.apk

image-20220711164759680

  • 真机需要授权,小米手机在开发者选项中点开USB安装选项
  • 指定设备

通过adb devices查看设备编号,然后加入参数-s <serialNumber>

1
adb install -s <serialNumber> *.apk

卸载apk

  • 卸载应用adb uninstall 包名
  • 卸载应用(不删除配置文件,保留数据缓存信息)adb uninstall -k 包名
  • 指定设备
1
adb uninstall -s <serialNumber> 包名

包和活动页

  • package——包:是安卓应用的唯一标识
  • activity——活动页:是安卓应用页面,一个页面就是一个activity

获取当前页面的activity

  1. 打开手机app应用的某个页面

  2. 在cmd中执行命令

    1
    adb shell "dumpsys window | grep mCurrentFocus"

image-20220712094314467

启动页面

1
adb shell am start -n <包名>/<activity名>
  • 打开QQ消息界面
1
adb shell am start -n com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity

com.tencent.mobileqq是包名

com.tencent.mobileqq.activity.SplashActivity是activity名

获取启动页面的activity

  • mac/linux

    1
    adb logcat ActivityManager:I | grep "cmp"
  • windows

    1
    adb logcat ActivityManager:I | findstr "cmp"

    备注:实际执行该命令时报错,在windows上一样执行mac/linux上的命令

执行完adb logcat ActivityManager:I | grep "cmp"命令后,打开美团app,返回下面信息

1

使用ctrl+c退出

使用adb shell命令

使用adb shell这个命令可以在主机端使用Linux的命令访问Android系统

  • adb shell:进入Linux环境
  • adb shell ls:查看目录结构
  • adb shell date:查看系统当前日期
  • adb shell cat/proc/cpuinfo:查看系统CPU使用情况
  • adb shell cat/proc/meminfo:查看系统内存使用情况

使用adb shell命令清除应用缓存

  1. adb shell进入内环境
  2. cd /data/data

使用adb shell pm clear 包名清除应用缓存

手机和电脑传输文件

  • adb push 电脑路径 手机路径:将电脑上的文件push到手机指定路径
  • adb pull 手机路径 电脑路径:将手机上的文件pull到电脑指定路径

查看系统的日志

  • 日志的级别
V 明细 verbose (最低优先级)
D 调试 debug
I 信息 info
W 警告 warn
E 错误 error
F 严重错误 fatal
S 无记载 silent (最高优先级,绝不会输出任何内容)
  • adb logcat

红色框中是时间,蓝色框中是进程号和线程号,黄色框中是Log级别,冒号前绿色框中是TAG标签,冒号后跟着是Log内容

image-20220712172536686

  • adb logcat --help查看帮助文档

  • adb logcat -v time: 打印时间

  • adb logcat -v color:不同级别使用不同颜色打印

  • adb logcat -f <filename>:将日志输出到文件中,<filename>是文件路径,这个地址是手机端的地址

  • adb logcat > <filename>:将日志输出到文件中,<filename>是电脑端的文件路径

  • adb logcat -c:清理已存在的日志

根据级别过滤日志

  • 获取WW以上级别的日志,过滤掉以下级别的日志
1
adb logcat "*:W"