android日志系统提供了记录和查看系统调试信息的功能,日志都是从各个软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来进行查看和使用

开发者选项,有个选项叫做“日志记录器缓冲区大小”,默认是256K,日志是循环写入环形缓冲区的,在通常情况下,写满时最旧的日志会被删除已给新输出的日志留内存空间

1.缓冲区的类型
Android 日志系统为日志消息保留了多个循环缓冲区,不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用 -b选项,查看指定的缓冲区:

adb logcat [-b <buffer>]
buffer可以有如下选项:

    • Radio 参数可以抓取Android RIL层 ,查看log包含在通信系统的log,如蓝牙、wifi、打印.、网卡、3G、4G    命令:adb logcat -b radio
    • Events 查看事件相关的消息,比如启动应用,停止文件 事件.
    • Main 查看主缓冲区、所有Java层的log(默认缓冲区).
    • System 输出系统组件的log(默认缓冲区).

ps:默认使用 【adb logcat】会输出Main及System缓冲区的log信息。

加参数-v  time 可以显示每天记录的详细时间,如  adb logcat -b system -v time > D:\log.system.txt

2.认识输出日志信息

输出的日志信息格式如下图所示:

1)日志内容由五部分组成

大概就是显示:时间 、进程Id=1164、 线程Id=1181、优先级=D、标签(tag)=WindowManger : message

    1. 写下日志时的时间,如:08-11 09:45:35.209
    2. 优先级:日志的优先级从小到大为

V-Verbose(啰嗦,最低级别,开发调试时的一些详细信息,仅在开发中使用,不可在发布产品中输出)

D-Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)

I-information(信息,一般提示性的消息)

W-warning(警告)

E-Error (错误,已经出现可影响运行的错误,比如应用crash时输出的日志)

S(无记载)

3.标签(tag),表明日志发起者和方便日志的过滤筛选,如上图中的SystemServer

4.PID(进程ID),如上图中的1760

5.正文,本日志的主体部分

2)过滤日志

如果要减少logcat 的输出日志,可以使用如上条件进行过滤、可用多个表达一起限制

过滤表达式的格式为:tag:prority (因为同一个tag可以有不同的优先级)

如:adb logcat ActivityManager:I MyApp:D *:S

备注1:仅用于输出标记为“ActivityManager”且优先级大于等于"I"和标记为“MyApp”,优先级大于等于"Debug"的日志。

备注2:*:S是用于设置ActivityManager:I MyApp:D输出的日志再次过滤 ,标记这些日志的优先级为S(即只输入ActivityManager:I MyApp:D日志,其他的不输出)

备注3:一般都会在过滤后加上*:S以输出符合指令的日志

adb logcat *:W  // "*"是指所有的tag, "*:W"是指输出所有的优先级为W以上的所有tag日志信息

可通过包名来过滤日志,

将程序运行在前台,通过命令查看应用包名称:adb shell dumpsys | findstr "mFocusedActivity"

3)分析日志异常情况

发生 crash 问题,搜索关键字 force finishing  (往上找日志:FATAL EXCEPTION—Force finish)

ANR(Application not responding)应用无响应,当应用操作一段时间内系统无法处理时,系统会弹出无响应的对话框。具体可以产看traces.txt文件,进行分析。

traces.txt文件是一个ANR记录文件,用于开发人员调试,目录位于/data/anr中
,无需root权限即可通过pull命令获取,下面的命令可以将traces.txt文件拷贝到当前目录下

通过ANR in 过滤数据 从上往下找数据

ANR需要提交的日志文件:logcat(从ANR in 开始+cpu使用之后)+Trace.txt(保存的是最后一次anr 的信息)

出现多次anr:将dropbox 下的data_app_anr 直接给开发人员

通过dropbox 收集一段时间内的异常信息(包括ANR)

/data/system/dropbox

Data_app 是第三方的app

App 发生异常

l  首先判断是崩溃还是无响应anr(根据对话框进行)

l  Adb logcat抓取日志文件 如果是ANR 取dropbox下面的data_app_anr

l  复现场景 复现步骤复现环境

logcat日志文件的更多相关文章

  1. adb 之日志文件分析(五)

    一,logcat日志文件 1,addroid日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区(内存)中记录下来的,缓冲区可以通过logcat命令来查看和使用 2,在开发 ...

  2. android adb logcat获取日志文件

    一般情况,可以直接在电脑终端上输入logcat来查看手机运行日志,但是测试工作者为了抓取日志文件来给开发人员,需要把日志导出到特定文件中.如下文. 以小米1s手机为例 步骤1:打开第一个终端窗口 ad ...

  3. Android APP测试的日志文件抓取

         1    log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有: ...

  4. Android中对Log日志文件的分析[转]

    一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug, a ...

  5. 【Android】ADB常用指令与logcat日志(转)

    ADB命令简介 ADB是一个功能强大的命令行工具.通过它可以直接和模拟器或真机进行交互.它是一个具有客户端和服务器端的程序. 它主要由三个部分组成: 客户端,它运行在你的开发机上,你可以通过执行adb ...

  6. 分包收集 android 运行的 logcat 日志

    # -*- coding:utf-8 -*- import os import time from common import Common comm = Common() cmd = r'adb l ...

  7. 【Android】ADB常用指令与logcat日志

    ADB命令简介 ADB是一个功能强大的命令行工具.通过它可以直接和模拟器或真机进行交互.它是一个具有客户端和服务器端的程序. 它主要由三个部分组成: 客户端,它运行在你的开发机上,你可以通过执行adb ...

  8. 【android】[转]Android软件测试的日志文件抓取简介

    1    log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb s ...

  9. android抓取logcat日志的方法

    这几天帮忙测试一个APP,报告结果需要提交日志文件,于是百度了下安卓的获取日志方法,其实很简单,7个步骤搞定,下面把我的总结分享给大家. 1.下载adb工具包 https://pan.baidu.co ...

随机推荐

  1. META标签的定义与使用(一、HTTP标题信息(http-equiv))

    META标签分两大部分:HTTP标题信息(http-equiv)和页面描述信息(name). 一.http-equiv类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页 ...

  2. 【学术篇】SPOJ COT 树上主席树

    这是学完主席树去写的第二道题_(:з」∠)_ 之前用树上莫队水过了COT2... 其实COT也可以用树上莫队水过去不过好像复杂度要带个log还是怎么样可能会被卡常数.. 那就orz主席吧.... 写了 ...

  3. 重写(Overriding)和重载(Overloading)

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. (1)方法重载是一个类中定义了多 ...

  4. RAksmart服务器具备哪些特点?

    美国RAKsmart机房运营多年,前身是提供美国军用服务器业务,拥有着庞大的用户群体和消费者,那RAksmart服务器具备哪些特点呢? 1.美国raksmart服务器特点——硬盘超大 美国raksma ...

  5. bfs+dfs乱搞+类似拓扑排序——cf1182D

    代码不知道上了多少补丁..终于过了 用类似拓扑排序的办法收缩整棵树得到x,然后找到x直连的最远的和最近的点 只有这三个点可能是根,依次判一下即可 另外题解的第一种方法时找直径,然后判两端点+重心+所有 ...

  6. web Magic报错 NoSuchMethodError NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiter

    webMagic使用selenium的时候遇到报错: java.lang.NoSuchMethodError: com.google.common.util.concurrent.SimpleTime ...

  7. 牛客多校第四场 I string 后缀自动机/回文自动机

    这个回文自动机的板有问题,它虽然能过这道题,但是在计算size的时候会出锅! 题意: 求一个字符串中本质不同的连续子串有几个,但是某串和它反转后的字符串算一个. 题解: 要注意的是,一般字符串题中的“ ...

  8. php数据结构课程---7、队列实战

    php数据结构课程---7.队列实战 一.总结 一句话总结: 注意条件:注意循环的条件(比如while循环打印队列元素时),注意if的条件 把问题想清楚:比如链表操作初次插入元素和后面再插,效果是不一 ...

  9. 多进程报错 EOFError: EOF when reading a line

    EOF的意思为:end of file 这个错误会在多进程中出现,是因为子进程中不能出现input,只能在父进程中使用. 结果:

  10. Docker系列(九):Kubernetes架构深度解析

    Kubernetes重要概念 Docker解决了打包和隔离的问题,但我们需要更多:调度的问题,生命周期及健康状况,服务发现,监控,认证,容器聚合. Kubernetes概述 开源DOcker容器编排系 ...