adb常用命令

落花浮王杯 提交于 2019-12-10 11:54:03

Android Debug Bridge(Android 调试桥)

针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。
adb 是一个 C/S 架构的命令行工具,用于通过电脑端与模拟器或者真实设备交互。在某些特殊的情况下进入不了系统,adb就派上用场了,主要由 3 部分组成:
· 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
· 运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接
· 运行在 Android 设备上的 adb 后台进程
adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程

通过adb操作android设备

连接上数据线,然后把手机开发者模式打开,打开usb调试。
在配好环境变量的前提下,在命令窗口当中输入 adb help 或者直接输入 adb ,将会列出所有的选项说明及子命令。
在开发或者测试的过程中,我们可以通过 adb 来管理多台设备,其一般的格式为:adb [-e | -d | -s <设备序列号>] <子命令>

  • adb devices 获取设备列表及设备状态
  • adb get-state 获取设备的状态
    设备的状态分三种:
    device:设备正常连接
    offline:连接出现异常,设备无响应
    unknown:没有连接设备
  • 安装卸载应用程序
    adb install 用于安装
    adb uninstall 用于卸载:adb uninstall 后面带的是应用的包名,而不是应用名。
  • 查看系统所有应用的包名:
    adb shell pm list package
    Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息
    -s:列出系统应用
    adb shell pm list packages –s
    -f:列出应用包名及对应的apk名及存放位置
    adb shell pm list packages –f
  • 上传、下载文件
    adb push 命令将PC机上的文件推到 Android机器上;
    adb pull 命令将DLT-RK3288机器上的文件拉到PC机上;
    例子:
    adb push d:/ytx.txt /sdcard/
    将D盘下ytx.txt文件 推到内部存储器
    adb pull /sdcard/ytx.txt d:
    将Android机器 内部存储器根目录下的ytx.txt 拉到D盘
  • adb shell
    通过adb shell 命令,就可以进入设备或者模拟器的shell环境了,在这个Linux shell中,我们就可以执行各种Linux命令了。
    如果只想执行一条shell命令,就可以采用:adb shell [shell_command],在实际使用中,经常与grep或findstr一起使用,起到过滤作用,查看自己需要的关键信息。
    常见命令有: ls, cd, rm, mkdir, touch, pwd, cp, mv, ifconfig, netstat, ping, ps, top等,进入adb shell即可执行,与linux相似
  • 在cmd窗口查看手机的Log日志
    有时候手机程序上的日志要在其他地方调试,然后要看里面的Log日志。输入adb logcat -help,查看一下一些简单的数据格式:
    格式1:打印默认日志数据
    adb logcat
    格式2:需要打印日志详细时间的简单数据
    adb logcat -v time
    格式3:需要打印级别为Error的信息
    *adb logcat :E
    格式4:需要打印时间和级别是Error的信息
    *adb logcat -v time :E
    格式5:adb logcat最后添加” > 保存文件的地址,将日志保存到电脑固定的位置,比如D:\log.txt
    adb logcat -v time >D:\log.txt
    日志过滤:adb logcat tag:priority
    tag表示标签,priority输出的级别,日志默认级别是V,其实 * 可以是某个tag,如果没有指明,就表示所有。
    tag可以由多个 [:priority] 组成。比如,命令:
    adb logcat ActivityManager:I MyApp:D :S
    表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。
    Android 的日志分为如下几个优先级(priority):
    V —— Verbose(最低,输出得最多)
    D —— Debug
    I —— Info
    W —— Warning
    E —— Error
    F —— Fatal
    S —— Silent(最高,啥也不输出)
    adb logcat选项解析
    –"-s"选项 : 设置输出日志
    :s的标签, 只显示该标签的日志;
    –"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
    –"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
    –"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
    –"-v"选项 : 设置日志的输出格式, 注意只能设置一项;
    –"-c"选项 : 清空所有的日志缓存信息;
    –"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
    –"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
    –"-g"选项 : 查看日志缓冲区信息;
    –"-B"选项 : 以二进制形式输出日志;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!