2024年最全BugReport 分析利器 ChkBugReport,2024年最新Android面试题库

学习分享,共勉

Android高级架构师进阶之路

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人

  • Android进阶知识体系学习脑图

  • Android进阶高级工程师学习全套手册

  • 对标Android阿里P7,年薪50w+学习视频

  • 大厂内部Android高频面试题,以及面试经历

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2.解析Bugreport


解析 Bugreport,首先我们将抓取的 bugreport.zip,解压抽取出 bugreport.txt,然后将chkbugreport.jar bugreport.txt 两个文件放在同一个文件夹下,然后执行java -jar chkbugreport.jar bugreport.txt

解析bugreport 方法使用举例如下:




C:\Users\Administrator\ChkBugReport\1>dir

... ...



2019/11/24  15:36        16,283,036 bugreport-T5542-PKQ1.190601.001-2019-11-24-15-34-17.txt

2019/12/03  10:51         2,494,186 bugreport-T5542-PKQ1.190601.001-2019-11-24-15-34-17.zip

2019/12/04  16:36           948,643 chkbugreport-0.5-216.jar

... ...



C:\Users\Administrator\ChkBugReport\1>java -jar chkbugreport-0.5-216.jar bugreport-T5542-PKQ1.190601.001-2019-11-24-15-34-17.txt



... ...



Writing chapter: eventlog_10137.html...

Writing chapter: eventlog_10128.html...

Writing frameset...

DONE!



C:\Users\Administrator\ChkBugReport\1>





3.查看index.html


解析完成后,我们点击解析文件夹中的index文件,进行查看分析。

解析生成的主要包含:Errors 、Memory info、 System log、 kernel log、 Event log 、Battery info 、AlarmManager 、ActivityManager、 Process等

通过浏览器查看 解析生成的index文件

四、ChkBugReport 使用详细说明

=====================

1.ChkBugReport 快速使用指南


只需运行将bugreport作为参数传递的工具即可。

我使用包装器脚本,将这两个脚本(包装器脚本“ chkbugreport ”和jar文件“ chkbugreport.jar”)复制到$ HOME / bin /,因此可以在计算机上的任何位置使用它:

$ chkbugreport thebugreport.txt

但是当然您也可以使用jar文件:

$ java -jar path/to/chkbugreport.jar thebugreport.txt

Bugreport 可以压缩(如.gz或zip文件形式)或纯文本文件。该工具将创建一个文件夹(带有输入文件名和后缀“ _out”后缀),并在该文件夹下创建所有文件(以及一些子文件夹)。您应该从该文件夹中打开“ index.html”文件(强烈建议使用Chrome或Firefox)。

如果没有Bugreport ,请创建一个:

$ adb bugreport > bugreport.txt

同样,如果您只有一部分Bugreport (例如日志或堆栈跟踪),则仍然可以使用此工具。假设您有一个系统日志和一个包含进程堆栈跟踪的文件(例如,取自/data/anr/traces.txt),则可以使用如下工具:

$ chkbugreport -sl:the_system_log.txt -sa:traces.txt dummy

这将在名为“ dummy_out”的文件夹中生成输出(假定“ dummy”是不存在的Bugreport 的名称)。

请注意,chkbugreport具有附加功能:它可以处理为traceview创建的概要分析数据。结果将类似:一个包含一堆html和图像文件的文件夹。要将其与跟踪文件一起使用,请在命令行上添加“ -t”选项:

$ chkbugreport -t something.prof

您可以像下面这样生成分析数据:

  • 使用“ adb shell ps”列出所有进程并找到要跟踪的进程的PID

  • 执行“ adb shell am profile PID start /data/profile.dat”以开始分析(将PID替换为进程ID号)

  • 做测试

  • 执行“ adb shell am profile PID停止”以停止分析(将PID替换为进程ID号)

  • 使用“ adb pull /data/profile.dat”拉出文件并将其从手机中删除(以节省宝贵的磁盘空间):“ adb shell rm /data/profile.dat”

  • 创建报告“ chkbugreport -t profile.dat”

2. ChkBugReport 命令行参数说明


要获取完整的参数列表,只需运行不带任何参数的工具即可。到目前为止,已处理以下参数:

-ds:file-将文件用作dumsys输出(与-pb几乎相同)

-el:file-使用文件作为事件日志

-ft:file-将文件用作ftrace转储

-ml:file-使用文件作为主日志

-mo:file-解析猴子输出并从中提取堆栈跟踪

-pb:file-加载部分Bugreport (例如dumpsys的输出)

-pk:file-加载packages.xml文件

-ps:file-将文件用作“进程”部分

-pt:file-将文件用作“进程和线程”部分

-sa:file-将文件用作“最后一个vm跟踪”部分

-sl:file-使用文件作为系统日志

-sn:file-将文件用作“刚才的vm跟踪”部分

-sd:dir-从目录中加载文件作为部分Bugreport

-uh:file-加载Usage-history.xml文件

附加选项(较少使用):

–browser-完成后启动浏览器

–gui-如果未提供文件名,则启动图形用户界面

–silent-抑制除致命错误以外的所有输出

–limit-限制输入文件的大小(默认)(例如),如果使用-sl选项,则日志文件如果太长会被截断(因为生成的html会更大)。此选项(以及–no-limit)必须在其他选项之前才能生效。

–no-limit-不限制输入文件的大小

注意:图形用户界面仍处于试验阶段,非常基础。

3.ChkBugReport 使用方法小tip


通过简单地添加–browser参数,chkbugreport将尝试在默认浏览器中打开结果。您可以通过将openBrowser = true添加到〜/ .chkbugreport(如果需要,创建文件)来将其设置为默认行为。

文件格式

====

ChkBugReport尝试在文件格式方面尽可能地灵活:

  • 它应该支持任何行尾(甚至是疯狂的行尾,例如0x0d 0x0d)

  • 它应该处理压缩的Bugreport

  • 它应该处理压缩的Bugreport (它将扫描zip以查找第一个看起来像Bugreport 的文件)

Android版

========

请注意,Bugreport 的格式随每个Android版本而变化,因此某些版本可能不完全受支持。另外,内容(即保存哪些数据)因电话而异,因此可能会丢失某些信息。

数据表格排序

======

一些表支持排序:如果表前有这样的提示,则可以单击列以按字母顺序对数据进行排序。您可以按住Shift键对多列进行排序。

其他一些表可能支持重新排序(表之前会有提示/注释),在这种情况下,您可以拖动行并将其上下移动。

某些表格的数据也将导出为CSV(逗号分隔值)文件,在这种情况下,您可以在excel或Open Office中打开它们,并进行自己的统计/过滤/排序/等操作。

如果ChkBugReport可以在类路径中找到sqlite jdbc驱动程序(例如sqlitejdbc-v056.jar),那么某些表的数据(以及一些其他数据,例如stacktraces)也将被导入到新创建的SQLite数据库中。

分析日志

====

您不需要完整的Bugreport 即可使用此工具。您可以从市场上下载记录器应用程序,该应用程序将持续将系统/主/事件日志保存在sdcard中。这样,您可以获取几个小时的使用情况数据。

当您要处理日志时,请从sdcard中提取日志并执行:

$ chkbugreport dummy --no-limit -sl:systemlog.txt -el:eventlog.txt

  • 所述伪参数只用于产生一个输出文件名

  • 该–no极限告诉chkbugreport不trunkate日志文件。缺省情况下,chkbugreport会中继大于1MB的日志文件,以避免生成过多的报告(或耗尽内存)。如果崩溃/异常位于日志末尾,有时这也是您想要的。但是,在这种情况下,我们要处理整个日志文件。

  • 该-sl:文件参数将加载系统/主日志。如果主日志位于单独的文件中,则可以使用-ml:file加载它

  • 该-el:文件参数将加载事件日志

当然,由于缺少许多信息(例如,进程的名称),因此生成的报告将受到更大的限制,因此chkbugreport会尝试猜测它可以做什么。但是,即使仅从日志中也可以提取许多信息,例如电池使用情况

最后

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

以下是今天给大家分享的一些独家干货:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

以下是今天给大家分享的一些独家干货:

[外链图片转存中…(img-OIiaZMkQ-1715121535531)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值