抓取Android APP崩溃和无响应日志的小工具

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前言

 

在Android APP的测试过程中经常遇到crash和anr,开发人员习惯通过eclipse或者eclipse的ddms组件进行捕抓日志,测试人员常通过在dos窗口下adb命令的方式来抓取日志。前者的缺点是启动时非常耗时,后者呢则每次都要写命令也比较麻烦(需要截图时也存在这个问题)。

针对这样的情况,本文分享一个通过adb程序与bat命令组合的技巧来抓取日志,只要3~5秒即可获取崩溃日志,非常快捷。

 

1. 准备工作

一、安装JDK(好像不装也没关系,未实测)和ADB(V1.0.31版本或以上),网上很多指导方法,这里就赘述了。

二、在PATH环境变量中添加ADB路径。这样就能在任意地方调用ADB命令,如adb.exe的位置在c:\adb\adb.exe,则在path中加入c:\adb。

 

2. 制作捕获日志的批命令

一、制作捕获crash异常的批命令

将以下命令复制,制作成logcat.bat文件。logcat.bat可以放置任意位置(如:桌面)。

1

2

3

4

5

6

7

@ECHO OFF

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value'do set "dt=%%a"

SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%

SET mutID=_mut

@ECHO ON

adb logcat -v time > .\"%mutID%_%timeStamp%_logcat.log"

pause

原理:

该工具的原理是bat文件调用adb工具,将手机运行日志拉到本地,并将实时日志也记录到本地。

用法:

当手机需要重现crash、或者x分钟内已经发生过crash(x≈15~30),点击此bat,logcat命令会将手机的logcat日志拉下来并实时记录,直到你关闭cmd窗口。然后在拉下来的txt中寻找fatal字眼,附近上下文即为crash日志。

二、制作捕获ANR异常的批命令

anr:Application Not Responding -- 程序无响应。

将以下命令复制,制作成“ANR捕获.bat”文件。“ANR捕获.bat”可以放置任意位置(如:桌面)。

1

2

3

4

5

6

@ECHO OFF

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value'do set "dt=%%a"

SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%

SET mutID=_mut

@ECHO ON

adb pull data/anr/traces.txt traces_%timeStamp%.txt

原理:

同上,将手机的traces.txt拉到本地。手机发生anr之后可以用,但一般用不上。

 

三、优点与限制

  1. 手机无需root

  2. 无需eclipse支持

  3. 方便保存、查找日志

  4. 实时日志不能在cmd窗口回显

3. 演示

以抓取crash异常为例:

步骤1:将android手机连接电脑,开启开发者模式并允许usb调试;

步骤2:运行logcat.bat文件,会出现cmd窗口;

步骤3:①如果手机程序已经发生过crash,5秒后关闭cmd窗口;②如果是想重现crash,则在手机端重现后即可关闭cmd窗口。

步骤4:在logcat.bat的同级目录下会生成一份log文件,从文件中搜查FATAL关键字,便可找到崩溃代码。

 

抓取Android APP崩溃和无响应日志的小工具_第1张图片

点击查看更多内容


作者:青春的小奋斗
链接:http://www.imooc.com/article/274028
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作

转载于:https://my.oschina.net/u/4000302/blog/3027720

你可能感兴趣的:(抓取Android APP崩溃和无响应日志的小工具)