Android APP调试工具:ADB
一、前言
ADB
是一个功能强大的命令行工具。通过它可以直接和模拟器或真机进行交互。它是一个具有客户端和服务器端的程序。
它主要由三个部分组成:
-
客户端,它运行在开发机上,可以通过执行
adb
命令来唤起一个客户端。其他的工具例如:ADT
插件以及DDMS
也可以创建一个ADB客户端。 -
服务端,它运行在你的后台进程,这个服务管理客户端和运行在模拟起或真机上的守护进程。
-
守护进程,它运行在每台模拟器或真机的后台进程。
当启动一个 adb客户端 的时候,客户端会首先检测是否已经有adb
服务进程运行,如果没有运行,那么它会首先启动一个服务进程,当服务进程启动后,服务进程绑定本地的5037
端口,并且监听所有来自 adb客户端 的命令,所有的 adb客户端 通过5037
与 adb 服务端进行交互。
服务端运行之后与所有运行的模拟器或真机建立链接,它通过一组范围从5555
到5585
的奇数的端口检索到所有的模拟器或真机。每一台模拟器或真机需要获取一对连续的端口,偶数端口用于控制台的连接,奇数端口用于adb的链接。
当然,如果你用Eclipse开发,并且也安装了ADT
插件,那么你没必要通过adb
命令行与模拟器或真机交互,ADT
插件已经完美的将adb
整合进了Eclipse IDE。当然还是提倡多使用adb命令行,这样的话比较方便自定义debug方法,同时也可以更好的理解其工作原理。
logcat
是android
中的一个命令行工具,可以用于得到程序的log信息。一般情况下,在做APP测试的时候,其实并不需要经常使用adb
去抓取应用日志,因为正常情况下都会有预期结果和实际结果作对比。真正需要用到adb
抓取日志的情况,是在测试过程中出现了异常问题,比如测试过程中系统突然卡了、直接(Crash)崩掉、应用程序无响应(ANR),即出现闪退或者异常的情况下就可以使用adb
抓取日志来分析发生的原因,以便于更好的定位问题。
常见的日志纪录方法包括:
其中,android.util.Log
常用的方法有以下5个:Log.v()
、 Log.d()
、Log.i()
、 Log.w()
以及 Log.e()
。根据首字母对应调试窗口LogCat
的几大选项:VERBOSE
,DEBUG
,INFO
,WARN
,ERROR
。
-
Log.v
调试颜色为黑色。对应LogCat
过滤选项是VERBOSE
,任何消息都会输出,这里的v
代表verbose
啰嗦的意思,平时使用就是Log.v("","")
。(v+d+i+w+e)
-
Log.d
输出颜色是蓝色。对应LogCat
过滤选项是DEBUG
,输出debug
调试的意思,会输出除Log.v
以外的信息。(d+i+w+e)
-
Log.i
输出颜色为绿色。对应LogCat
过滤选项是INFO
,一般提示性的消息information
,它不会输出Log.v
和Log.d
的信息,但会显示i
、w
和e
的信息。(i+w+e)
-
Log.w
输出颜色为橙色。对应LogCat
过滤选项是WARN
,可以看作为warning
警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e
的信息。(w+e)
-
Log.e
输出颜色为红色。对应LogCat
过滤选项是ERROR
,可以想到error
错误,这里仅显示红色的错误信息,这些错误需要认真分析,查看栈的信息了。(e)
二、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
5.2 如何实时查看android Log.e日志信息
在Android开发中,Log.e()
用于输出错误信息,为了实时查看这些日志信息,可以使用 adb 命令 logcat
。
打开终端或命令行工具,并输入以下命令:
adb logcat -s tag:Priority
其中 tag
是你在日志输出中指定的标签(例如,你的应用程序名),而 Priority
是日志级别,例如 E 代表错误。
例如,如果你的应用程序名为 “MyApp” 并且你想要实时查看错误日志,你可以使用:
adb logcat -s MyApp:E
这将过滤出所有标签为 “MyApp” 且优先级为错误 (E) 的日志信息,并实时显示在命令行中。
如果想要同时查看多个标签的日志,可以使用逗号分隔它们:
adb logcat -s MyApp:E,AnotherTag:D
这里 MyApp:E 表示实时查看 MyApp 的错误日志,而 AnotherTag:D 表示查看 AnotherTag 的调试日志 (D)。
六、拓展阅读
- 点赞
- 收藏
- 关注作者
评论(0)