搭建bugReport的阅读工具Battery Historian

前言

bugreport我们都知道,是用来查看安卓异常信息的,通过adb命令导出。但是bugreport文件特别大,阅读很不方便,本文就带读者们了解一下如何使用Battery Historian来帮助我们更轻松的阅读bugReport文件。

本文主要分为三个部分:

1.bugreport的介绍

2.Battery Historian的介绍以及搭建流程

3.总结(使用之后的体验)

一.bugreport介绍

安卓中,所有的异常其实都会被以日志的形式进行记录,不同的异常类型会分别存储到下面这几个目录下面:

目录 介绍
data/anr/  应用的ANR信息直接存储目录
data/tombstones/  应用墓碑日志
data/system/dropbox dropbox存储的信息。dropbox会对crash/anr/tombstones/wtf等异常进一步的进行日志收集,并生成一份新的文件进行保存。

 如图所示的就是dropbox目录下的crash等异常信息。

data_app_crash指的是普通应用的crash异常,system_app_crash指的是系统级应用的crash异常,ANR也会做这样的区分。

如果设备root了,我们自然可以像拷贝文件夹一样把这些文件拷贝出来,但是对于普通的设备来说,我们通过adb调试是没有权限读取data/anr/等文件夹中内容的,所以如果开发者想读取异常信息怎么办呢?这时候就该bugreport出场了。

我们可以通过adb bugreport的命令生成一份bugreport文件,这份文件不但会包含crash/anr等信息,甚至与window的状态/进程信息等也都会帮我们进行抓取和显示。但是包含如此多的信息,自然就会有一个问题,那就是文件太大了,一般的bugreport文件都要四五十M,如果以文本的形式进行阅读实在是太费力了,所以Battery Historian应运而生。

Battery Historian介绍

Battery Historian是是google开源的一款工具,用来辅助我们阅读bugreport。

其实完整的搭建流程Battery Historian上已经有讲解了,链接如下:

battery-historian

但是感觉readme是英文的,而且描述有一些模糊,所以就实际按照流程操作了一遍。

流程如下:

本文选择的是通过doctor的方式进行搭建,这也是最简单的一种方式。

1.安装Docker环境

2.通过下面的命令启动Docker。其中port改成自己本地想使用的端口号。

docker -- run -p <port>:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

比如我使用的是:

docker -- run -p 8080:9999 gcr.io/android-battery-historian/stable:3.0 --port 9999

这样,命令行页面应该就会把服务搭建好

3.打开浏览器,输入地址:http://localhost:8080/

这里的8080就是我们刚才配置的端口

4.等到网页加载出来后,选择Browse选择文件

这里有可能会需要等待很长时间,怀疑有可能是转发的解析请求。

5.选择bugreport文件,然后点击submit即可

6.然后网页就会显示解析中

7.然后Battery Historian就会帮助我们解析bugreport文件,最后以网页的形式展示给我们。

总结

bugreport确实可以帮助我们查看一些异常信息,但是上面图中也有贴截图,实际有可能并没有那么的理想。

猜你喜欢

转载自blog.csdn.net/AA5279AA/article/details/131228056