Android bugreport 分析方法-程序员宅基地

技术标签: bugreport  logcat  android  Android  

bugreport 概述

Android bugreport 是一个用于诊断和解决 Android 设备问题的工具。它包含了 Android 设备在某个时间点的所有状态和信息,包括各种 CPU、RAM、网络和 I/O 等方面的信息,以及一些日志和统计数据等等。相对于通过用户反馈等方式汇报问题,通过分析 Android bugreport 可以更准确地理解和诊断问题。

要分析 Android bugreport 文件,可以按照以下步骤进行:

  1. 查找基本信息:检查手机型号、固件版本、系统构建号等基本信息,了解手机的硬件和软件环境。

  2. 查找统计信息:查看系统统计信息,了解手机的 CPU、内存、网络使用情况等等,这些信息对于检查手机运行的健康状况有很大帮助。

  3. 查找异常日志:查看异常日志,找到导致问题的错误信息,错误信息可能包括应用程序崩溃、系统日志或服务停止等等。

  4. 使用工具进行分析:使用工具分析日志信息,比如 Android Studio 的 Profiler 工具、adb logcat 等等,可以帮助你更深入地分析异常日志,找到导致问题的具体原因。

生成 bugreport

直接 adb bugreport 生成

adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.zip: 1 file pulled, 0 skipped. 27.4 MB/s (23057334 bytes in 0.802s)
Bug report copied to C:\Users\86185\bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.zip

Android bugreport 内容分析

直接生成的是一个zip 包,大概有20M大小;
bugreport-xxxxx-2022-07-26-09-29-01.zip
解压后目录如下所示:

|-- FS
|-- bugreport-W6501-TP1A.220624.014-2023-06-01-20-52-54.txt
|-- dumpstate_log.txt
|-- lshal-debug
|-- main_entry.txt
|-- proto
|-- version.txt
`-- visible_windows.zip
  • FS 是一个目录包含下面子目录:
    data data下的关键信息如 tombstone,ANR,logd信息等
    proc 各个进程procfs 的dump信息
    linkerconfig TBD
  • lshal-debug 关键HAL进程的 lshal信息
  • proto TBD
    dumpstate_board.txt 执行bugreport 的dumpstate 进程信息
  • main_entry.txt dump出的文件名
  • dumpstate_log.txt 执行dumpstate 的log 信息
  • version.txt TBD
  • visible_windows.zip TBD
    如果发生了ANR,crash 等事件,FS下的内容是至关重要的,ANR的trace 和 tombstone 文件都可以找到,具体可以结合bugreport txt 文件分析
  • bugreport-xxx-211001.002-2022-07-26-09-29-01.txt
    这个文件包含了system dump 的ALL info 和 dump 时间点前后的log,包含的内容为:
    系统信息:dum时间点,系统版本,内核版本,运行时间,Bootcmd
========================================================
== dumpstate: 2022-07-26 09:29:01
========================================================
Build: frost-userdebug 11 RD2A.211001.002 C3QP_R_V0.9.15.R1-0577-20220720 test-keys
Build fingerprint: 'Redmi/frost/frost:11/RD2A.211001.002/C3QP_R_V0.9.15.R1-0577-20220720:userdebug/test-keys'
Bootloader: unknown
Radio: MPSS.HA.1.0.c2-00414-QTANG2_LWG_PACK-1,MPSS.HA.1.0.c2-00414-QTANG2_LWG_PACK-1
Network: ,
Module Metadata version: 30
Kernel: Linux version 5.4.191-jgki-debug+ (scm@SS-AIMM02) (Android (6443078 based on r383902) clang version 11.0.1 (https://android.googlesource.com/toolchain/llvm-project b397f81060ce6d701042b782172ed13bee898b79), LLD 11.0.1 (/buildbot/tmp/tmp6_m7QH b397f81060ce6d701042b782172ed13bee898b79)) #1 SMP PREEMPT Wed Jul 20 02:28:27 CST 2022
Command line: security=selinux androidboot.hardware=jlq iommu.strict=0 firmware_class.path=/etc/firmware swiotlb=2048 rcu_nocbs=0-7 kpti=off rcupdate.rcu_expedited=1 earlycon=uart8250,mmio32,0x3450F000 console=jlqttyS1,115200n8 no_console_suspend loglevel=7 page_owner=on printk.devkmsg=on buildvariant=userdebug  androidboot.verifiedbootstate=orange androidboot.vbmeta.device=PARTUUID=7db6ac55-ecb5-4e02-80da-4d335b973332 androidboot.vbmeta.avb_version=1.0 androidboot.vbmeta.device_state=unlocked androidboot.secureboot=0 androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=7168 androidboot.vbmeta.digest=9d001b15f4485a96b573fa13c001ac965a9cd10f43c5734ee92815b91827a401 androidboot.veritymode=disabled androidboot.bootdevice=34458000.sdhci androidboot.boot_devices=0.soc/34458000.sdhci androidboot.serialno=d4081bbb androidboot.sysdump=1 androidboot.cpuid=0x2124a4815baaeebd2102628ed64fc07400000000000000000000000000000000 androidboot.bootreason=0 androidboot.baseband=msm androidboot.hwname=frost androidboot.hwc=Global androidboot.hwversion=1.21.0 androidboot.hwlevel=1 androidboot.product.hardware.sku=c3qpa panel_cfg=xiaomi C3QP 35 02 0a hd+ video dsi panel,display_init=1 androidboot.slot_suffix=_a rootwait ro init=\init androidboot.dtbo_idx=6,9,15  androidboot.dtb_idx=0 androidboot.force_normal_boot=1
Uptime: up 0 weeks, 6 days, 6 hours, 1 minute
Bugreport format version: 2.0
Dumpstate info: id=2 pid=20089 dry_run=0 args=/system/bin/dumpstate -S -d -z bugreport_mode=

dumpsys 信息

dumpsys SurfaceFlinger
关键字:
DUMP OF SERVICE CRITICAL SurfaceFlinger:
was the duration of dumpsys SurfaceFlinger

dumpsys activity activities
关键字:
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
was the duration of dumpsys activity

dumpsys cpuinfo
关键字:
was the duration of dumpsys cpuinfo

dumpsys input
关键字:
was the duration of dumpsys input

dumpsys notification
关键字:
was the duration of dumpsys notification

dumpsys power
关键字:
was the duration of dumpsys power

dumpsys sensorservice
关键字:
was the duration of dumpsys sensorservice

dumpsys window lastanr
关键字:
WINDOW MANAGER LAST ANR (dumpsys window lastanr)

dumpsys window policy
关键字:
WINDOW MANAGER POLICY STATE (dumpsys window policy)

dumpsys window animator
关键字:
WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)

dumpsys window sessions
关键字:
WINDOW MANAGER SESSIONS (dumpsys window sessions)

dumpsys window displays
关键字:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)

dumpsys window tokens
关键字:
WINDOW MANAGER TOKENS (dumpsys window tokens)

dumpsys window windows
关键字:
WINDOW MANAGER WINDOWS (dumpsys window windows)

dumpsys window trace
关键字:
WINDOW MANAGER TRACE (dumpsys window trace)

dumpsys window logging
关键字:
WINDOW MANAGER LOGGING (dumpsys window logging)

dumpsys window refresh
关键字:
WINDOW MANAGER HIGH REFRESH RATE BLACKLIST (dumpsys window refresh)

dumpsys window constants
关键字:
WINDOW MANAGER CONSTANTS (dumpsys window constants):

lgcat 信息

关键字:
system log:
------ SYSTEM LOG (logcat -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of ‘SYSTEM LOG’ ------

event log:
------ EVENT LOG (logcat -b events -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of ‘EVENT LOG’ ------

stat log:
------ STATS LOG (logcat -b stats -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of ‘STATS LOG’ ------

radio log:
------ RADIO LOG (logcat -b radio -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of ‘RADIO LOG’ ------

last log:
------ LAST LOGCAT (logcat -L -b all -v threadtime -v printable -v uid -d *:v) ------

chkbugreport 工具

因为bugreport 中包含了太多的信息,查找分类信息很困难,所以有分析bugreport txt文件的开源工具 chkbugreport;作用是分析析处理手机上生成的bugreport,并且为开发者提取尽可能多的有用数据;
具体用法可以参考下面的文章:
BugReport 分析利器 ChkBugReport

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44008788/article/details/131294133

智能推荐

Python实现两个有序集合的交集和并集_有两个集合采用整数单链表a,b存储,设计一个算法求两个集合的并集c,c仍然采用单链-程序员宅基地

文章浏览阅读2.8k次。本文通过python实现简易的集合交并算法,输入是两个以递增顺序排序的集合,输出它们的有序交集和有序并集。1、Union算法def union(s1, s2): o = [] i = j = 0 s1_n = len(s1) s2_n = len(s2) while i < s1_n and j < s2_n: ..._有两个集合采用整数单链表a,b存储,设计一个算法求两个集合的并集c,c仍然采用单链

如何将西安80坐标转换为国家2000(或WGS84)坐标系?_80转2000坐标对照表-程序员宅基地

文章浏览阅读2.3w次,点赞6次,收藏34次。西安80坐标系和国家2000坐标系之间的转换是两种不同的椭球参数之间的转换,一般而言比较严密的是用七参数布尔莎模型,即X平移,Y平移,Z平移,X旋转(WX),Y旋转(WY),Z旋转(WY),尺度变化(DM)。每个地区的七参数是不一样的,想得到七参数需要在一个地区提供3个以上的公共点坐标对(即西安80坐标系下x、y、z和国家2000坐标下x、y、z),可以向地方测绘局获取。方法/步..._80转2000坐标对照表

Taro路由跳转_taro监听路由跳转-程序员宅基地

文章浏览阅读2.8k次。先在路径src/app.tsx下将页面添加页面管理中然后在index.tsx页面中写一个点击事件toMouseTracker(){ Taro.navigateTo({ url:'./mouseTracker/MouseTracker' }) }<Button size='mini' onClick={this.toMouseTracker}>点..._taro监听路由跳转

FFMPEG 编译的一些问题 标记一下__audioconverterfillcomplexbuffer", referenced from-程序员宅基地

文章浏览阅读3.1k次。Undefined symbols for architecture x86_64: "_AudioConverterDispose", referenced from: _ffat_close_decoder in libavcodec.a(audiotoolboxdec.o) _ffat_close_encoder in libavcodec.a(__audioconverterfillcomplexbuffer", referenced from:

贝尔数-程序员宅基地

文章浏览阅读2.3k次。转自ACdreamer http://blog.csdn.net/acdreamers/article/details/12309269Bell数的定义:第n个Bell数表示集合{1,2,3,...,n}的划分方案数,即:B[0] = 1; 每一个Bell数都是第二类Stirling数的和,即: 第二类Stir_贝尔数

Spring MVC访问页面直接显示源码_springmvc加载jsp为什么是源码-程序员宅基地

文章浏览阅读5.3k次,点赞5次,收藏6次。一、问题描述SSM整合好之后,通过Controller,返回要访问页面的url,然后jsp页面显示,问题是jsp页面直接把源码显示了!!如下二、解决方法出现这种问题是由于我在web.xml中把url-pattern配置错了,所导致的,我配置的如下: SpringMVC /* 把他改成 S_springmvc加载jsp为什么是源码

随便推点

python去掉人像白边_python 使用plt画图,去除图片四周的白边方法-程序员宅基地

文章浏览阅读1.9k次。python 使用plt画图,去除图片四周的白边方法用matplotlib.pyplot画的图,显示和保存的图片周围都会有白边,可以去掉。为了显示的更清楚,给图片加了红色的框代码“`import matplotlib.pyplot as pltfig, ax = plt.subplots()im = im[:, :, (2, 1, 0)]ax.imshow(im, aspect='equal')p..._python画图不要坐标轴外白色框

乾坤 微前端_微前端 qiankun 项目实践 !!! 防踩坑指南-程序员宅基地

文章浏览阅读1.7k次。作者:zxh1307导语最近在做微前端的项目 , 过程中真是踩了不少坑 , 在有限的资料中不断试错 , 默默无语两行泪 哈哈. 在此次将采坑部分都记录下来, 让更多的人少走点弯路 , 此项目使用 蚂蚁金服qiankun 为基础作为开发 . 话不多说 开讲 !!!那什么是 qiankun 呢qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的..._乾坤 手动刷新页面

高通QFIL刷机指南-程序员宅基地

文章浏览阅读2w次,点赞6次,收藏62次。文章目录1、通过QFIL刷机2、工具下载1、通过QFIL刷机1) 刷机需要进入9008刷机模式,在CMD窗口里,输入adb devices检查是否连接设备,然后输入adb reboot edl 进入9008刷机模式。2) 双击打开QFIL烧录工具,选择Configuration 配置,勾选Reset after Download 和Erase All Before Download备注(不需要全擦下载时,可以去勾选:Erase All Before Download)3) selectport_qfil

【Linux学习】虚拟机VMware 安装Qt5 一条龙讲解_虚拟机安装qt-程序员宅基地

文章浏览阅读1.4w次,点赞52次,收藏172次。如何在Linux下安装Qt5呢?Linux下安装Qt5 一条龙讲解_虚拟机安装qt

解决Linux系统的ls/vi等基本命令不能用的问题_lsvi-程序员宅基地

文章浏览阅读4.7k次,点赞14次,收藏9次。解决Linux系统的ls/vi等基本命令不能用的问题这两天在配置项目到我的Linux服务器,输入命令的时候发现了一个bug,我的Linux系统的ls、vi等基本命令都不能用了,能理解是/etc/profile文件配置错误,我就以为是我不小心改了文件的什么,后来找到标准的该文件进行对比,也没有发现问题,后来终于在网上找到了问题所在,因为我配过python的环境,在配环境的时候我直接export path=$python_home/bin;而应该是path=$path:$home/bin的形式;我把$path_lsvi

GPS卫星星历与历书_gps星历-程序员宅基地

文章浏览阅读2.9w次,点赞16次,收藏120次。GPS卫星星历与历书 GPS 卫星发送的导航信息是每秒50位的连续的数据流,在此我们称之为导航电文,每颗卫星都同时向地面发送以下信息: 系统时间和时钟校正值、自身精确的轨道数据(星历,ephemeris) 其他卫星的近似轨道信息(历书,almanac) 系统运行状况。1.GPS卫星星历: 卫星轨道信息或某一时刻轨道参数及其变率或某一时刻卫星位置及其变化率。分为预_gps星历

推荐文章

热门文章

相关标签