背景
首先,要查看安卓日志,需要安装adb环境,其次通过adb指令在终端查看,开发者的ide工具终端已经很方便我们过滤筛选日志。但是在未安装ide的环境下,一般是直接用windowd的cmd终端来看,众所周知,cmd体验实在不是很好,所以这里强烈推荐使用cygwin来取代cmd。cygwin是什么?cygwin是一个在windows平台上运行的类UNIX模拟环境,也就是你安装了cygwin就可以在windows下使用linux命令,有些无法在cmd下使用的命令我们便可以在cygwin下使用,如grep、color,这票文章只讲解部分adb指令,更多相关的指令有兴趣可以自行了解。
这篇文章面向对象是QA(和懒得开ide看日志的安卓开发者),因为开发者通常会在代码中加入很多日志用于调试,如果QA能在遇到bug时观察打印出的日志(根据开发者提供的过滤条件),便能协助开发者定位问题问题出处,可以较为及时、高效地定位问题。
使用步骤
一、安装配置adb与配置环境变量
如果你的pc已经安装与配置过adb环境,则忽略此步。
非开发人员,直接到这下载adb工具,解压放在你的目录,然后将adb.exe的路径配置在系统环境变量,参考这里配置adb环境变量
二、安装cygwin

根据你电脑64位还是32位,点击对应的下载地址
下载完成后,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下图所示:
我们看到有三种安装模式:

- Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;
- Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;
- Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。
从上述三种模式中选择适合你的安装模式,这里我们选择第一种安装模式,直接从网上安装,当然在下载的同时,Cygwin组件也保存到了本地,以便以后能够再次安装。选中后,接下来傻瓜式安装,选择你想要安装的路径,一直next-next,若有选项,直接选第一项即可~
安装完成后,打开cygwin Terminal,执行
$ cygcheck -c cygwin
Cygwin Package Information
Package Version Status
cygwin 3.1.4-1 OK
会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常
如何筛选日志?
首先准备一条数据线,连上你的手机,打开cygwin Terminal,按如下步骤:
获取设备标识
adb devices 获取设备标识
- 效果
如上 Q5S0219527008077 就是你的设备标识,如果有显示,说明你手机连接正常,如果有多个设备都会列出来,建议调试的时候不要连接多台设备
如果你的pc上只连上这台设备,则直接通过如下过滤日志:
清除之前的日志信息
adb logcat -c //清除之前的日志信息,一般在看日志前都会执行这个命令,目的是好看日志,不然前面的日志应该会超级多
获取全部日志
adb logcat
- 效果

这里会获取手机打印的全部日志,但是大部分情况下,我们需要过滤指定关键词的日志。
注意:执行了logcat相关指令,这里会持续获取日志信息,如果需要停止打印,按ctrl+c
,如下同理。
过滤单个关键词的日志
adb logcat | grep "EXE_TAG" --color //过滤 EXE_TAG关键字的日志,且关键字彩色标识
- 效果:
过滤多个关键词的日志
//过滤多个关键字的日志,且关键字彩色标识
//这里是过滤带有wyj或者EXE_TAG关键词的日志
//多个关键字依次在后面添加 \|关键词1\|关键词2,
adb logcat | grep "wyj\|EXE_TAG" --color
- 效果:
过滤错误日志
adb logcat *:E(不区分大小写) //过滤全部错误日志(这里会吧e级别以上的都打印出来,不过一般只关注e级别)
adb logcat *:E | grep "com.xmexe.exe" //过滤com.xmexe.exe包下的错误日志(一般关注的是这个)
- 效果

将日志保存在指定目录
adb logcat *:E >c:/error001.TXT //将所有错误日志保存到c:/error001.TXT
adb logcat *:E | grep "com.xmexe.exe" ->error009.TXT //将com.xmexe.exe包下的错误日志保存到error009.TXT

ctrl+c
退出,同时对应目录下可以看到日志文件

同样的,如下指令是将指定关键词的日志输出到文件
adb logcat | grep "wyj\|EXE_TAG" >c:/exe002.TXT
其他常用指令
clear //清屏
adb version //查看adb版本
adb logcat -t 50 //输出最近50行的日志
adb shell pm list packages //adb命令查看列出手机装的所有 app 的包名
adb shell pm list packages -s //列出系统应用的所有包名
adb shell pm list packages -3 //列出除了系统应用的第三方应用包名
更多adb指令可以参考 adb进阶知识,如何过滤只查看某一个app的日志