Android bugreport 分析方法

这篇具有很好参考价值的文章主要介绍了Android bugreport 分析方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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文章来源地址https://www.toymoban.com/news/detail-620750.html

到了这里,关于Android bugreport 分析方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android】logcat日志敏感信息泄露

    之前会遇到一些应用logcat打印敏感信息,包括但不限于账号密码,cookie凭证,或一些敏感的secretkey之类的,下面客观的记录下起危害性。  1. logcat logcat是Android系统提供的一种记录日志的工具。它可以帮助开发人员诊断应用程序中的问题,例如崩溃、内存泄漏和性能问题。l

    2024年02月07日
    浏览(43)
  • Android JNI打印logcat日志

    在 JNI 中打印日志可以使用 __android_log_print 函数来实现。该函数是 Android NDK 提供的一个用于在本地代码中输出日志消息到 logcat 的方法。 要在 JNI 中打印日志,请按照以下步骤进行操作: 在你的 JNI C/C++ 代码中包含 android/log.h 头文件: 使用 __android_log_print 函数来打印日志。它

    2024年02月09日
    浏览(46)
  • 新版Android Studio Logcat 筛选日志

    下载了新版的Android Studio,android-studio-2022.3.1.21-mac_arm,记录一下新版本AS的logcat过滤日志条件 1.1 过滤当前包名的日志 1.2 过滤其他包名日志 在控制台输入 就可以筛选所有info级别的日志 3.1 筛选单个tag 比如想筛选MainActivity的所有日志 那么在控制台可以看到所有MainActivity的日志

    2024年02月22日
    浏览(44)
  • Android Studio 学习笔记--LogCat的使用

    LogCat是Android中的命令行工具, 用于获取程序从启动到关闭的日志信息 。Android中的应用运行在一个单独的设备中,应用的调试信息会输出到这个设备单独的日志缓冲区中,要想从设备日志缓存区中取出信息,就需要学会使用LogCat Log类所输出的日志内容分为 6 个级别,由低到

    2024年02月10日
    浏览(58)
  • Android Studio - 新版 logcat 过滤使用记录

    由于 as 在每次升级都有很多问题,因此去年升级到  Dolphin  就一直未升级, Dolphin  版本就可以在设置中打开新版的 logcat 过滤功能,觉得不太习惯又关掉了。这次刚好 asfp 的下载重新学习下新版的功能。在此简单记录下。 我们可以在输入框输入 \\\"p\\\" 然后就会有提示 p 开头的

    2024年01月24日
    浏览(43)
  • Android Studio新版本logcat过滤说明

    按包名过滤 //输入package:(输入一个p就会有提示的) ,后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package=:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考:正则表达式 – 简介 | 菜鸟教程 -package:反向过滤 -pack

    2024年02月12日
    浏览(37)
  • Android11 默认开机后台记录logcat日志

    软件平台:Android11 硬件平台:QCS6125     需求:android启动后,默认后台记录logcat日志,并且设置每个文件大小为2M,最多记录30个文件,并且放置的data目录需要开放给app侧读取权限。 改动如下: device目录添加app侧读取的selinux权限: system目录相关添加: Mark一下,编译验证调

    2024年02月15日
    浏览(44)
  • Android --- logcat 打印日志、设置缓存大小、过滤等

    一、示例: Android log 通过系统属性 persist.log.tag 和 persist.log.tag.ABC  决定相关log的指定等级及以上才可以写入,ABC是指某个tag,TAG长度不能太长。 二、设置系统属性: 1.设置log日志缓存大小 2.使能所有log tag 输出,设置所有log V等级及以上才能输出 3.禁止所有log tag 的输出,设置

    2023年04月09日
    浏览(41)
  • Android Studio Dolphin 新版Logcat的配置使用

    从之前版本的 Android Studio 更新到 Android Studio Dolphin , Logcat 也有了新变化。一般来说工具更新带来的新特性会使我们的开发更加的便捷和高效。 Logcat 会对日志进行格式化,同时对不同等级的日志以颜色区分,能使我们更方便的查看想要的日志。同时根据个人的使用需求,

    2023年04月13日
    浏览(51)
  • Android Studio Flamingo新版本Logcat使用介绍

    Android Studio更新后Logcat日志样式大变样了,和之前版本差别很大 下面就介绍下新版本的Logcat: 可以选择切换当前打印日志的设备 和之前版本最大的区别就是这个日志过滤了,可以根据不同的过滤条件进行日志过滤 1、按包名过滤 2、按日志等级过滤 3、按Tag过滤 4、按过

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包