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 <apk文件>
adb install -r <apk文件>    # -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等可使用该命令打印日志信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,627评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,480评论 2 59
  • 感恩一大早的美术老师给我打电话让妞去听一节美术课,女儿有些胆怯不敢去,我鼓励她你去尝试一下不行咱们就不上,感恩大儿...
    梦不赢最美阅读 1,079评论 0 1
  • 顾苇一进家门就看见老妈笑得异常喜庆:“儿子回来啦?!快快快,进来进来。” 就连不苟言笑的老爸顾青城也“慈祥”...
    北北齐阅读 1,267评论 0 1
  • 偶尔驻足街头,看时髦女郞衣襟细碎斤斤吊吊,不禁感叹好热闹,再看自己一袭素衣太过清简,怜爱油然而生,不是惋惜自己舍不...
    伊尚曼网阅读 1,781评论 0 0