如何通过 bugreport 分析 Android 系统日志?
📢 1. 职业规划篇
来聊聊安卓职业规划?整机开发大专能做么?
📢 2.基础篇
基础篇.前言
基础篇.编译环境搭建
基础篇.源码目录简介
基础篇.系统 mk_bp 讲解
基础篇.开机动画定制
基础篇.定制桌面壁纸、导航方式
基础篇.系统属性、api 使用
基础篇.名称修改、名词介绍
基础篇.用 bugreport 带你看 Crash 和 ANR
基础篇.Provision 源码分析
📢 3. 系统应用篇
系统应用篇.开机向导制作一
系统应用篇.开机向导制作二
系统应用篇.Settings 导航切换分析
系统应用篇.开机向导导航切换一
系统应用篇.开机向导导航切换二
系统应用篇.gms 制作集成
系统应用篇.开机向导适配 GMS
系统应用篇.Launcher3 结构剖析一
系统应用篇.Launcher3 结构剖析二
系统应用篇.Launcher3 结构剖析三
系统应用篇.Launcher3 图标加载流程一
系统应用篇.Launcher3 图标加载流程二
系统应用篇.Launcher3 桌面布局定制
系统应用篇.解密 Partner、google PAI 机制
系统应用篇.Partner 机制预制壁纸、默认布局
系统应用篇.Launcher 双排 Hotseat 定制一
系统应用篇.Launcher 双排 Hotseat 定制二
系统应用篇.Launcher 双排 Hotseat 定制三
系统应用篇.Launcher Taskbar 简介以及调出
系统应用篇.SystemUI 篇_用工具教会你看布局、进程
系统应用篇.SystemUI 结构讲解一
系统应用篇.SystemUI 结构讲解二
系统应用篇.SystemUI 的启动流程
系统应用篇.SystemUI 导航栏创建一
系统应用篇.SystemUI 导航栏创建二
系统应用篇.SystemUI 自定义导航按键
系统应用篇.SystemUI 快捷面板下拉流程
系统应用篇.SystemUI 定制禁用锁屏下拉通知栏
系统应用篇.SystemUI 通知注册流程
系统应用篇.SystemUI 通知发送流程
📢 4. 系统篇
系统篇.SystemServer 篇_应用与系统进程间关系
系统篇.SystemServer 简介、自定义 Service 服务一
系统篇.SystemServer 简介、自定义 Service 服务二
系统篇.SystemServer 简介、自定义 Service 服务三
系统篇.SystemServer 简介、自定义 Service 服务四
系统篇.SELinux 问题解决套路一
系统篇.SELinux 问题解决套路二
系统篇.ActivityManagerService 简介
系统篇.WindowManagerService 简介一
系统篇.WindowManagerService 简介二
系统篇.PackageManagerService 简介一
系统篇.PackageManagerService 简介二
系统篇.FW 实战 - Letterbox 定制应用方向一
系统篇.FW 实战 - Letterbox 定制应用方向二
系统篇.分屏流程一
系统篇.分屏流程二
📢 5. 性能篇
(省)低内存优化
性能篇 (省). 低内存查杀机制
性能篇 (省).SystemServer 与 LMK 的 socket 通信
性能篇 (省). 内核进程 LMKD
性能篇 (省). 内存分析
性能篇 (省). 内存泄漏定位与解决
(稳)稳定性优化
性能篇 (稳).WatchDog 检测机制一
性能篇 (稳).WatchDog 检测机制二
性能篇 (稳). 深入 Crash 捕获器流程一
性能篇 (稳). 深入 Crash 捕获器流程二
性能篇 (稳). 深入炸弹 ANR 流程一
性能篇 (稳). 深入炸弹 ANR 流程二
(快)开机优化
性能篇 (快). 开机耗时分析
性能篇 (快). 开机耗时优化
性能篇.实战优化方案分享
framework交流,答疑:251662478
如何通过 bugreport 分析 Android 系统日志?
在 Android 整机开发 & 系统调试 中,bugreport 是最常用的日志分析工具之一。它包含了系统运行的各种关键日志,包括 main.log、event.log、ANR、Crash 等。本文将手把手教你如何从 bugreport 中找出关键信息!🚀
📌 1. 获取 bugreport
在 Android 设备 上,使用 ADB 获取 bugreport:
adb bugreport > bugreport.zip
或者:
adb shell bugreport > bugreport.txt
如果是 Android 7.0 以上,会生成 bugreport.zip,解压后包含:
bugreport.txt(完整日志)
FS(文件系统信息)
TOMBSTONES(崩溃信息)
ANR(应用无响应日志)
📌 2. main.log(主日志)
main.log 主要记录 系统组件 & 应用的运行状态,包含: ✅ 应用启动 / 退出
✅ Service 启动 / 绑定 / 解绑
✅ Activity 生命周期(onCreate、onResume、onDestroy)
✅ 重要的系统信息 & 错误日志
🔍 关键搜索词:
am_proc_start # 进程启动
am_proc_died # 进程结束
am_activity_launch_time # Activity 启动耗时
am_crash # APP 崩溃
am_anr # APP ANR
🔍 示例:
02-05 12:45:21.123 1000 1850 1982 I am_proc_start: [0,18982,10034,com.android.settings,activity]
📌 解析: com.android.settings 进程(PID=18982)启动成功。
📌 3. event.log(系统事件日志)
event.log 主要记录 系统关键事件,例如: ✅ 应用前后台切换
✅ 屏幕解锁 / 休眠
✅ WMS(窗口管理)事件
🔍 关键搜索词:
wm_task_moved # Activity 切换
screen_toggled # 屏幕开关
🔍 示例:
02-05 13:05:33.123 1000 1850 1982 I screen_toggled: 1
📌 解析: screen_toggled: 1 表示 屏幕被点亮,0 表示 息屏。
📌 4. ANR(Application Not Responding)
ANR(应用无响应) 发生在: ✅ 主线程阻塞(耗时任务没放到子线程)
✅ 输入事件(InputDispatch)超时
✅ Service 绑定 / 解绑超时
🔍 关键搜索词:
am_anr # 查找所有 ANR 事件
🔍 示例:
02-05 14:12:45.987 1000 1850 1982 I am_anr: [12345,com.example.app,InputDispatching Timeout]
📌 解析:
12345 = 进程 ID
com.example.app = 发生 ANR 的应用
InputDispatching Timeout = 由于 主线程卡住 导致 ANR
🛠 如何分析 ANR ? 1️⃣ 搜索 “ANR in” 找到完整 ANR 堆栈日志
2️⃣ 查看 “main.log” 是否有 “InputDispatch Timeout”
3️⃣ 检查 “event.log” 看看屏幕操作记录
📌 5. Crash(应用崩溃)
Crash(崩溃) 主要由于: ✅ 空指针异常(NullPointerException)
✅ 数组越界(ArrayIndexOutOfBoundsException)
✅ ANR 之后的强制杀进程
🔍 关键搜索词:
am_crash # APP 崩溃
FATAL EXCEPTION # 关键错误
🔍 示例:
02-05 14:39:55.321 1000 1850 1982 I am_crash: [12345,1000,com.example.app,java.lang.NullPointerException,"Attempt to invoke virtual method 'java.lang.String'"]
📌 解析:
12345 = 进程 ID
com.example.app = 崩溃的应用
NullPointerException = 空指针异常
📌 6. 如何快速定位问题?
💡 快速分析思路: 1️⃣ 应用崩溃(Crash)
搜 am_crash 找到崩溃日志
查看 FATAL EXCEPTION 详细堆栈
2️⃣ 应用卡死(ANR)
搜 am_anr 找到 ANR 发生时间
搜 InputDispatching Timeout 确认是否是主线程卡住
3️⃣ 应用启动慢
搜 am_proc_start 找到进程启动时间
搜 am_activity_launch_time 查看 Activity 启动耗时
4️⃣ 系统 BUG / 设备异常
搜 system_server crash 找到 SystemServer 崩溃
搜 tombstone 查找 native 崩溃(C++ 代码问题)
💡 总结
通过 bugreport,我们可以快速分析 应用崩溃(Crash)、ANR(无响应)、系统事件(event.log),快速定位 Android 系统的问题。希望这篇文章能帮到你!💪🚀
📢 你在调试 bugreport 过程中遇到哪些问题?欢迎留言讨论! 😃
相关文章:
如何通过 bugreport 分析 Android 系统日志?
📢 1. 职业规划篇 来聊聊安卓职业规划?整机开发大专能做么? 📢 2.基础篇 基础篇.前言 基础篇.编译环境搭建 基础篇.源码目录简介 基础篇.系统 mk_bp 讲解 基础篇.开机动画定制 基础篇.定制桌面壁纸、导航方式 基础篇.系统属性、ap…...
安防机器人电源解决方案
安防机器人电源方案简介 随着安防机器人领域技术的不断进步,越来越多的新型传感器,特别是激光雷达(光探测与测距)的广泛应用,以及先进的板载AI处理器的加入,使得机器人能够更加安全、智能地与人类进行互动。然而,这也对机器人的电源系统提出了更高的要求。某安防机器人…...
内网穿透的应用-Ubuntu本地Docker搭建pichome文件管理系统打造个人云相册
文章目录 前言1.关于pichome2.本地部署pichome3.简单使用pichome4. 安装内网穿透5.配置pichome公网地址6. 配置固定公网地址 前言 你是不是也经常遇到这样的尴尬:手机、电脑里堆满了照片和视频,想找一张特定的图片时却像在大海捞针一样无从下手…...
力扣-栈与队列-1047 删除字符串中的所有相邻重复项
思路 利用栈更新紧邻的元素,和要插入的元素作比较 代码 class Solution { public:string removeDuplicates(string s) {if(s.size() < 2) return s;stack<char> st;st.push(s[0]);for(int i 1; i < s.size(); i){if(!st.empty() && s[i] s…...
旅客服务系统(PSS, Passenger Service System)
1. 系统概述 1.1 系统目标 旅客服务系统(PSS)旨在为旅客提供一站式航空服务,涵盖航班信息查询、机票预订、值机办理、行李托运、订单管理、支付集成等功能。系统通过模块化设计和分布式架构,确保高可用性、高性能、可扩展性和安全性,满足航空公司和旅客的多样化需求。 …...
Linux路径中的‘~‘
本文来自DeepSeek 在Linux中,~ 是用户主目录的简写。具体含义如下: 当前用户的主目录: ~ 代表当前登录用户的主目录。例如,用户 alice 的主目录通常是 /home/alice,~ 就指向 /home/alice。 其他用户的主目录ÿ…...
认识网络安全
一 网络攻击链 踩点-工具准备-载荷投递-漏洞利用-释放载荷-建立通道-目标达成 简化下: 目标侦察:准确识别目标,收集目标详细信息,比如 网络、 邮箱、员工、社会关系、对外提供服务、漏洞 信息等,为 后续攻击做准备。…...
信息科技伦理与道德3-3:智能决策
2.3 智能控制 智能控制算法介绍 智能控制算法的优化:性能提升的秘诀 https://blog.csdn.net/universsky2015/article/details/137309308 案例一:特斯拉自动驾驶汽车未能识别白色卡车导致车祸...
以 Python 为工具搭建的热门旅游景点数据分析系统
系统介绍: 随着计算机技术的飞速发展,计算机系统的应用已广泛渗透到社会的各个领域。大数据的大量应用为人们的生活带来了极大的便利。在此背景下,将热门旅游景点数据分析管理与互联网相结合,利用计算机搭建热门旅游景点数据分析…...
ZooKeeper 技术全解:概念、功能、文件系统与主从同步
引言 随着分布式系统变得越来越复杂,对协调服务的需求也在不断增长。ZooKeeper 作为一个由 Apache 维护的开源分布式协调服务框架,广泛用于 Hadoop 生态系统和其他需要协调的分布式环境中。这一系统旨在解决分布式应用中常见的挑战,如配置管…...
Visual Studio Code 的 AI 编程助手
文章目录 1. 写在最前面2. AI 编程助手2.1 Top 10 AI Extensions for Visual Studio Code2.1.1 脑图概括2.1.2 详细介绍 2.2 10 Best AI Code Tools: Quick and Easy Guide (2024)2.2.1 脑图概括2.2.2 详细介绍 3. Cody 插件试用4. 碎碎念5. 参考资料 1. 写在最前面 最近在研究…...
Kafka的ISR是什么,HW是什么,怎么保证可靠性,Kafka怎么实现顺序消息?为什么Kafka的broker上的topic越多,效率越慢?
目录 1. Kafka 的 ISR 是什么 2. Kafka 的 HW 是什么 3. Kafka 如何保证可靠性 4. Kafka 怎么实现顺序消息 5. 为什么 Kafka 的 broker 上的 topic 越多,效率越慢 1. Kafka 的 ISR 是什么 ISR 即 In-Sync Replicas(同步副本集),是 Kafka 中一个重要的概念,用于保障消…...
Ollama系列---【ollama使用gpu运行大模型】
一、安装CudaToolkit 使用控制台命令查看当前显卡驱动中的cuda版本 nvidia-smi 二、下载CudaToolkit 注意:CudaToolkit版本要低于上面的显卡Cuda版本。 Cuda各版本下载地址:CUDA Toolkit Archive | NVIDIA Developer 下载好之后,一路下一步&a…...
使用C语言实现MySQL数据库的增删改查操作指南
使用C语言与MySQL数据库进行交互,通常涉及使用MySQL提供的C API库。这套API允许开发者在C/C++程序中执行SQL查询,从而实现数据库的增删改查操作。下面,我将详细介绍如何在C语言中实现这些基本操作。 准备工作 安装MySQL开发库:确保你的系统上安装了MySQL服务器以及MySQL开发…...
【Golang学习之旅】Go + Redis 缓存设计与优化(项目实战)
文章目录 业务需求1. 缓存设计2. GoRedis代码实现3. 代码解析4. 性能优化 在本节中,我们将通过一个实际的项目案例,演示如何在 Go 中使用 Redis 实现高效的缓存设计与优化。 业务需求 假设我们正在开发一个电商平台,需要缓存商品信息以提高页…...
2、k8s 二进制安装(详细)
k8s 二进制安装 IP规划初始化部署 etcd 集群在 etcd01 节点上操作准备cfssl证书生成工具,加权生成etcd证书上传etcd软件包启动 etcd 服务 部署 Master 组件部署 Worker Node 组件node 节点安装 docker部署组件 部署 CNI 网络组件部署 flannel简介部署 部署 Calico简…...
安卓开发,底部导航栏
1、创建导航栏图标 使用系统自带的矢量图库文件,鼠标右键点击res->New->Vector Asset 修改 Name , Clip art 和 Color 再创建一个 同样的方法再创建四个按钮 2、添加百分比布局依赖 app\build.gradle.kts 中添加百分比布局依赖,并点击Sync Now …...
CWOI-N RER 1 > 2 Solution
CWOI-N RER 1 > 2 Solution 声明:头图为断章取义。 这场比赛得 200 200 200 分是保底,得 300 300 300 分是基操,得 350 350 350 分以上才是实力(但不多)。 A - 机读卡 No solutions yet. 这题数据倒还不能无…...
字节跳动后端一面
📍1. Gzip压缩技术详解 Gzip是一种流行的无损数据压缩格式,它使用DEFLATE算法来减少文件大小,广泛应用于网络传输和文件存储中以提高效率。 🚀 使用场景: • 网站优化:通过压缩HTML、CSS、JavaScript文件来…...
Dify 框架连接 PGSQL 数据库与 Sandbox 环境下的 Linux 系统调用权限问题
Dify 框架连接 PGSQL 数据库与 Sandbox 环境下的 Linux 系统调用权限问题 背景 在使用 Dify 框架进行开发时,遇到了两个主要的技术挑战: 代码节点连接到 PGSQL(PostgreSQL)数据库。解决沙盒环境中由于系统调用限制导致的“oper…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
