Android APP调试工具:ADB

举报
SHQ5785 发表于 2023/06/09 08:40:23 2023/06/09
【摘要】 一、前言ADB是一个功能强大的命令行工具。通过它可以直接和模拟器或真机进行交互。它是一个具有客户端和服务器端的程序。它主要由三个部分组成:客户端,它运行在开发机上,可以通过执行adb命令来唤起一个客户端。其他的工具例如:ADT插件以及DDMS也可以创建一个ADB客户端。服务端,它运行在你的后台进程,这个服务管理客户端和运行在模拟起或真机上的守护进程。守护进程,它运行在每台模拟器或真机的后台...

一、前言

ADB是一个功能强大的命令行工具。通过它可以直接和模拟器或真机进行交互。它是一个具有客户端和服务器端的程序。

它主要由三个部分组成:

  • 客户端,它运行在开发机上,可以通过执行adb命令来唤起一个客户端。其他的工具例如:ADT插件以及DDMS也可以创建一个ADB客户端。

  • 服务端,它运行在你的后台进程,这个服务管理客户端和运行在模拟起或真机上的守护进程。

  • 守护进程,它运行在每台模拟器或真机的后台进程。

当启动一个 adb客户端 的时候,客户端会首先检测是否已经有adb服务进程运行,如果没有运行,那么它会首先启动一个服务进程,当服务进程启动后,服务进程绑定本地的5037端口,并且监听所有来自 adb客户端 的命令,所有的 adb客户端 通过5037adb 服务端进行交互。

服务端运行之后与所有运行的模拟器或真机建立链接,它通过一组范围从55555585的奇数的端口检索到所有的模拟器或真机。每一台模拟器或真机需要获取一对连续的端口,偶数端口用于控制台的连接,奇数端口用于adb的链接。

当然,如果你用Eclipse开发,并且也安装了ADT插件,那么你没必要通过adb命令行与模拟器或真机交互,ADT插件已经完美的将adb整合进了Eclipse IDE。当然还是提倡多使用adb命令行,这样的话比较方便自定义debug方法,同时也可以更好的理解其工作原理。

logcatandroid中的一个命令行工具,可以用于得到程序的log信息。一般情况下,在做APP测试的时候,其实并不需要经常使用adb去抓取应用日志,因为正常情况下都会有预期结果和实际结果作对比。真正需要用到adb抓取日志的情况,是在测试过程中出现了异常问题,比如测试过程中系统突然卡了、直接(Crash)崩掉、应用程序无响应(ANR),即出现闪退或者异常的情况下就可以使用adb抓取日志来分析发生的原因,以便于更好的定位问题。

常见的日志纪录方法包括:

在这里插入图片描述

二、logcat命令参数

在这里插入图片描述

注⚠️:一般长时间输出log的话建议-f,-n,-r三个参数连用,这样当一个文件日志输出满了之后可以马上在另一个中进行输出。

三、格式化输出

日志消息包含一个元数据字段,除了标签和优先级,可以修改输出显示一个特定的元数据字段格式的消息。为此,可使用-v选项来指定一个支持的输出格式。支持格式如下:
在这里插入图片描述

当logcat开始,指定想要输出格式-v选项:

[adb] logcat [-v <format>]

adb logcat –v thread

四、日志抓取

1、将手机和电脑连接,连接后可在终端输入adb devices查看连接状态。

在这里插入图片描述

2、抓取日志前,清除旧的日志信息输入下面的命令并执行。

adb logcat -c

3、开始抓取日志,输入如下命令把日志写入到文件中:

adb logcat -v time > D:\Logcat\logcat.log

打开手机重现操作步骤,然后按下Ctrl+C结束日志的抓取。(-v time的意思是按照时间记录日志)

在这里插入图片描述

4、最后只要在设置存放日志的目录中查看日志即可。

在这里插入图片描述

五、应用示例

//将缓冲区的log打印到屏幕并退出
adb logcat -d

//清除缓冲区log(testCase运行前可以先清除一下)
adb logcat -c

//打印缓冲区大小并退出
adb logcat -g

//输出log
adb logcat -f /data/local/tmp/log.txt -n 10 -r 1

5.1 日志级别过滤

查看10条级别为错误(Error)的日志

adb logcat 10 *:E > D:\Logcat\logcat.log

六、拓展阅读

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。