adb常用操作命令总结

介绍

针对移动端Android的测试,掌握adb命令将会为Android测试带来很大的便利。
adb全称是Android Debug Bridge,中文为安卓调试桥,adb是一个C/S架构的命令行工具,存放于sdk目录下的platform-tools目录下。

adb架构

1、adb client(客户端)

client是运行在PC端的,该组件发送命令,可以通过发出adb命令从命令行终端调用客户端。每当我们发起一个adb命令的时候,就会开启一个client程序。当然,当我们开启DDMS或者ADT的时候,也会自动创建client。当我们开启一个client的时候,它首先会去检测后台是否已经有一个server程序在运行着,否则会开启一个adb-server进程。所有的client都是通过5037端口与adb-server进行通信的。

2、adb daemon(adbd后台程序)

Daemon,该组件作为一个后台进程运行在模拟器/真实Android设备中,在设备上运行命令。daemon使用端口的范围是5554-5585,每个模拟器/设备连接到PC端时,总会开启这样一个后台进程,并且为其分配了两个连续的端口,比如:
Emulator1, console: 5554
Emulator1, adb: 5555
因为每个设备都分一组两个端口,所以adb连接手机的最大数量为16。
端口的作用,在这两个端口中,其中偶数端口是用于server与设备进行交互的,可以让server直接从设备中读取数据,而奇数端口是用来与设备的adbd进行连接通信的。

3、adb server(服务器)

Server,该组件管理客户端和后台程序之间的通信,作为一个后台的程序运行在PC端。当一个server开启的时候,会自动绑定并且监听5037端口,接收client通过该端口发送过来的命令。同时server还会对5555-5585间的奇数端口进行扫描,进行对已连接设备的定位。

adb基本架构.png

一、设备相关命令

adb启动
adb start-server
adb关闭
adb kill-server
查看已连接设备
adb devices
指定设备
adb -s <设备名> <命令>    # 当有多设备连接时,通过-s <设备名> 来指定设备进行操作
获取设备的状态
adb get-state    # 一共有3种状态,
# 1.device:设备连接正常
# 2.offline: 设备连接异常
# 3.unknown: 没有连接设备
重新挂载设备
adb remount
重启设备
adb reboot

二、应用相关命令

应用程序安装
adb install 
adb install -r     # -r:保留程序运行所产生的数据和缓存目录进行安装
应用程序卸载
adb uninstall <应用包名>
adb uninstall -k <应用包名>    # -k:不删除程序运行所产生的数据和缓存目录
应用数据清除
adb shell pm clear <应用包名>
查看应用包名
adb shell pm list package    # 显示所有应用列表
adb shell pm list package -s    # 显示系统应用
adb shell pm list package -3    # 显示第三方应用
adb shell pm list package -f    # 列出应用包名及存放位置
adb shell pm list package | grep <过滤字段>    # 使用grep过滤指定字段的应用
获取应用Activity
adb shell dumpsys activity | grep mFocusedActivity    
# mFocusedActivity为当前和用户交互的Activity,所以得先打开应用程序再使用该命令
adb shell dumpsys window windows | grep Current
adb logcat | grep ActivityManager
启动应用
adb shell am start -n <应用包名+启动的Activity>
关闭应用
adb shell force-stop <应用包名>

三、文件传输命令

将Android设备中的文件发送到PC上
adb pull <设备文件路径> <本地文件路径>
adb pull /sdcard/test.txt D:\testdir\
将PC上的文件发送到Android设备中
adb push <本地文件路径> <设备文件路径> 
adb push D:\testdir\test.txt /sdcard/

四、获取日志命令

adb抓取log信息
adb logcat > <文件路径+文件名>    # 抓取Android系统中的所有日志
adb抓取报错信息
adb shell bugreport > <文件路径+文件名>    # 设备报错或ANR等可使用该命令打印日志信息

你可能感兴趣的:(adb常用操作命令总结)