博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[原创]使用logcat快速抓取android崩溃日志
阅读量:6452 次
发布时间:2019-06-23

本文共 1242 字,大约阅读时间需要 4 分钟。

 

在android APP测试过程中会发生不少的crash,目前抓取日志的主流方法是通过eclipse或者eclipse的ddms组件进行捕抓,这两种方法有个缺点是启动时非常耗时。本文通过adb程序与bat命令组合,只要3~5秒即可获取崩溃日志,非常快捷。

 

一、安装jdk

JDK网上教程非常多,此处不再赘述。(好像不装也没关系,未实测)

 

二、工具列表

a)         adb包(v.1.0.31版本或以上,下文提供下载地址)

b)         logcat.bat文件(下文制作)

 

三、安装adb(二选一)

a)         放到任意位置(推荐)

因为adb是一个轻量、独立的程序,只要放到任意位置即可。

b)         使用path进行安装

将adb添加到path,能在任意地方调用adb命令

如adb.exe的位置在c:\adb\adb.exe,则在path中加入c:\adb;

 

四、Logcat批处理命令

 

@ECHO OFFfor /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 ONadb logcat -v time > .\"%mutID%_%timeStamp%_logcat.log"pause

 

将以上命令复制,制作成logcat.bat文件。

若adb.exe无设置path,将logcat.bat放到与adb.exe同一个位置;

若adb.exe已设置path,logcat.bat可以放置任意位置(如:桌面)。

 

五、示例

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

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

步骤3:①如果手机程序已经发生过crash,5秒后关闭cmd窗口;

            ②如果是想重现crash,则在手机端重现后即可关闭cmd窗口。

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

 

六、原理

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

 

七、优点与限制

a)         手机无需root

b)         无需eclipse支持

c)         方便保存、查找日志

d)         实时日志不能在cmd窗口回显。

 

后记:adb工具包下载地址以及图解:

如果你认为本文对你有帮助,希望能在网页右方(这是右→)进行支付宝扫码领红包。保证二维码萌萌哒。

如果你认为本文对你有帮助,希望能在网页右方(这是右→)进行1块几毛的微信打赏。保证二维码萌萌哒。

转载请注明出处          转载请注明出处          转载请注明出处

 

转载于:https://www.cnblogs.com/medsonk/p/6344373.html

你可能感兴趣的文章
OC中使用 static 、 extern、 const使用
查看>>
简单理解函数回调——同步回调与异步回调
查看>>
POJ 1007
查看>>
Android 多个Activity 跳转及传参
查看>>
中文文本预处理流程(带你分析每一步)
查看>>
anroid 广播
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
如何设计企业内部的数据平台?
查看>>
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
【译】Linux系统和性能监控(4)
查看>>
开篇,博客的申请理由
查看>>
点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。...
查看>>
Ubuntu常用笔记
查看>>
Token和session 详解
查看>>
JMeter IP欺骗压测
查看>>
Serializers 序列化组件
查看>>
最简单的RPC框架实现
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
CountDownLatch与thread-join()的区别
查看>>