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

一、安装jdk

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

二、工具列表

a)         adb包(v.1.0.31版本或以上,实测1031、1032都行)

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

三、安装adb

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

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

b)         使用path进行安装

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

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

四、Logcat批处理命令

@ECHO OFF

SET date=%DATE:/=-%

SET date=%date:~0,10%

SET time=%TIME:~0,0%

SET time=%TIME::=-%

SET time=%time:.=-%

SET timeStamp=%date%_%time%

@ECHO ON

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

将以上命令复制,制作成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窗口回显。

后记.本文原创于公司知识库(相当于月刊),原文是有工具包,但因为后续工具包可能要fork,暂不流出。

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

[原创]使用logcat快速抓取android崩溃日志的更多相关文章

  1. [原创]adb使用教程v1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  2. [原创]adb使用教程v1.1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  3. 抓取Android崩溃日志

    作为一个测试人员,特别是安卓的测试,由于系统版本的不同和手机本身各个品牌的优化和硬件的不同,会出现各种各样的崩溃. 记录崩溃的方式有很多种,比如使用录屏工具或文档进行记录,但是最简洁明了可以直接定位的 ...

  4. 制作bat脚本,抓取Android设备logcat

    ::bat制作抓取Android设备的logcat,并保存以时间命名的txt文件至设备目录 1 @ECHO off adb wait-for-device ECHO 正在连接设备 adb logcat ...

  5. 抓取Android应用的log

    今天测试软件时,遇到一个bug,因为开发说那边不复现,所以为了更好追踪这个问题,需要抓取复现步骤地log. 在网上查了相关资料,同时结合自己遇到的问题,总结如下. 1. 抓取Android 应用log ...

  6. 一键抓取Android的Locat Log

    很多小伙伴在做App测试时,一遇到Cash,开发同学最常说的一句话,就是抓下Locat日志,很多小伙伴一听到这个抓取日志就会觉得有点烦. ​主要有2点: ​    ​    ​1.是这个bug可能不好 ...

  7. PHP快速抓取快递信息

    <?php header("Content-type:text/html;charset=utf-8"); /** * Express.class.php 快递查询类 * @ ...

  8. Windbg抓取程序崩溃的dmp文件的方法

    Windbg抓取程序崩溃的dmp文件的方法 一.        简介 windbg是在windows平台下,强大的用户态和内核态调试工具.相比较于Visual Studio,它是一个轻量级的调试工具, ...

  9. Jumony快速抓取网页

    Jumony快速抓取网页 --- Jumony使用笔记--icode   作者:郝喜路   个人主页:http://www.cnicode.com      博客地址:http://haoxilu.c ...

随机推荐

  1. 我的Python---1

    在学习Python两周后的今天,第一次做下总结.在昨天,我发现了这个博客,并且风也似的注册.申请,然后成功了,感谢管理员. 实际上,现在回想起来我第一次接触编程时在高一的计算机课上.那时候只有语数外理 ...

  2. 使用ioctl向linux内核传递参数的方法实例

    该篇实例是摘自网络(无法追根溯源倒低是哪位"前"辈写的了) 一.应用层 uint16 data16; if ((fd = socket(AF_INET, SOCK_STREAM, ...

  3. AspNetCore-MVC实战系列(三)之个人中心

    AspNetCore - MVC实战系列目录 . 爱留图网站诞生 . git源码:https://github.com/shenniubuxing3/LovePicture.Web . AspNetC ...

  4. 蓝桥杯-大衍数列-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  5. RocketMQ与Kafka对比

    转自:https://github.com/alibaba/RocketMQ/wiki/rmq_vs_kafka 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用MySQL作为消息存 ...

  6. poj 1088 动态规划

    #include <iostream> #include <string.h> using namespace std; ][];//存储当前位置能得到的最优解 ][];//存 ...

  7. python 小程序—循环和列表训练

    a=input('please input your salary:') purchase=[] while True: products=[[1,'iphone',5800],[2,'book',5 ...

  8. uname命令

    uname用于显示系统信息. 语法: uname [option]... 选项: -a:显示所有信息: -s:显示内核名称: -n:显示主机名: -r:显示内核版本: -v:显示更多的内核版本信息: ...

  9. 【网站管理1】_dede织梦后台如何发布文章

    对于新手可能不了解,dede织梦后台是如何发文章的.下面说下我的经验. 发布文章步骤 1.打开浏览器,推介谷歌,360极速浏览器,火狐浏览器,输入网站后台网址   出现如下图登入界面 2.输入账号密码 ...

  10. 源码浅谈(一):java中的 toString()方法

    前言: toString()方法 相信大家都用到过,一般用于以字符串的形式返回对象的相关数据. 最近项目中需要对一个ArrayList<ArrayList<Integer>> ...