frameworks 之 日志打印

embedded/2024/12/23 10:58:10/

frameworks 之 日志打印

  • 1. 常见日志类型
  • 2. 动态日志ProtoLog

讲解 anddroid 日志打印类型。

1. 常见日志类型

android 日志类型分为 6 类 分别为 main,system, radio, events, crash, kernel
查看帮助指令

adb shell logcat --help
  • main: 用于存储大多数应用和系统组件的日志信息。当你不指定缓冲区时,logcat 默认会从这个缓冲区读取日志
  • system: 这个缓冲区包含来自系统级别的日志消息,通常涉及系统进程和守护进程,这些信息通常比 main 缓冲区中的更为底层。
  • events:这个缓冲区记录了系统事件日志,如系统启动、关闭、以及应用程序的启动和终止等。这些日志通常以时间戳的形式记录
  • crash:当应用程序或系统组件崩溃时,相关的崩溃报告会被记录到 crash 缓冲区中。这有助于开发者分析崩溃的原因
  • kernel:缓冲区包含来自内核的日志消息。这些消息通常涉及硬件驱动程序、内存管理、进程调度等底层系统操作

可以通过 -b 指定对应的类型输出,默认是 all。

adb shell logcat -b main

system日志一般通过代码打印

Slog.i(TAG, "Restarting because process died: " + next);

evnets 日志一般通过代码,打印 而 EventLogTags 该类是生成的。一般可以通过日志的驼峰搜索,如 wm_resume。 一般可以搜索WmResume找到对应的打印

EventLog.writeEvent(EventLogTags.AM_ANR, mApp.userId, pid, mApp.processName,mApp.info.flags, annotation);
EventLogTags.writeWmResumeActivity(next.mUserId, System.identityHashCode(next),next.getTask().mTaskId, next.shortComponentName);

2. 动态日志ProtoLog

ProtoLog 日志作为高版本新增日志打印方式,作用可以随时通过adb 控制输出或隐藏。通过adb 可以查看其使用方法

adb shell wm -h

常用使用的方法如下

命令描述
wm logging startstart proto logging 开始Proto log输出,让你enable的Group生效;输出到Logcat时不需要start
wm logging stopstop proto logging
wm logging enable/disable [group…]按照groups启停ProtoLog,真正启动是start命令,调用start命令之后才输出
wm logging enable-text/disable-text [group…]启停动态日志,输出到logcat,不需要调用start命令就会开始输出

这里存在一个差别:enable和enable-text是有啥差别?
enable对应proto logging抓取会把日志写入到data/misc/wmtrace/路径下wm_log.winscope
enable-text对应就是logcat可以直接看到的,平时使用这个就ok了;

代码写法如下

ProtoLog.d(WM_DEBUG_STATES, "resumeTopActivity: Restarting %s", next);

比如我们想要查看对应的日志即可

adb shell wm logging enable-text WM_DEBUG_STATES

http://www.ppmy.cn/embedded/148047.html

相关文章

mysql免安装版配置教程

一、将压缩包解压至你想要放置的文件夹中,注意:绝对路径中要避免出现中文 二、在解压目录下新建my.ini文件,已经有的就直接覆盖 my.ini文件内容 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\tools\\mysql-8.1.0-win…

汽车电子零部件(15):AVM全景影像系统

概述: 使用ADAS全景监控(AVM)精确停车和操纵。这项先进技术采用多个摄像头,提供车辆周围环境的鸟瞰图。 360度全景监控系统: 360 AVM系统可以帮助驾驶员360度查看车辆周围的情况,避免发生碰撞。360 AVM系统由一个电子控制单元(ECU)和四个摄像头组成。ECU将处理四个摄…

【附源码】Electron Windows桌面壁纸开发中的 CommonJS 和 ES Module 引入问题以及 Webpack 如何处理这种兼容

背景 在尝试让 ChatGPT 自动开发一个桌面壁纸更改的功能时,发现引入了一个 wallpaper 库,这个库的入口文件是 index.js,但是 package.json 文件下的 type:"module",这样造成了无论你使用 import from 还是 require&…

【新教程】非root用户给Ubuntu server设置开机自启服务-root用户给Ubuntu server设置开机自启服务

1 思路 使用systemd用户服务 2 过程 1、创建用户服务文件: mkdir -p ~/.config/systemd/user vim ~/.config/systemd/user/my_app.service用户服务文件模板: [Unit] DescriptionSSH_ct Afterdefault.target[Service] ExecStart/home/wlg/Softwares/wyc/wyc_lin…

Vue3之性能优化

Vue3作为Vue框架的最新版本,在性能上进行了大量的优化,使得其在处理大型应用和复杂界面时表现更加出色。本文将详细介绍Vue3的性能提升、优化策略以及性能提升的实例,并结合具体代码和性能测试数据,展示Vue3在实际应用中的性能优势…

键盘常见键的keyCode和对应的键名

常见键的keyCode和对应的键名 键名keyCode描述Enter13回车键Escape27Esc键Backspace8退格键Tab9Tab键Space32空格键Arrow Up38向上箭头Arrow Down40向下箭头Arrow Left37向左箭头Arrow Right39向右箭头Shift16Shift键Control17Ctrl键Alt18Alt键Caps Lock20大写锁定键F1112F1键F…

【蓝桥杯每日一题】扫描游戏——线段树

扫描游戏 蓝桥杯每日一题 2024-12-13 扫描游戏 线段树 模拟 题目大意 有一根围绕原点 O 顺时针旋转的棒 O A OA OA ,初始时指向正上方 (Y 轴正向)。 在平面中有若干物件, 第 i 个物件的坐标为 ( x i , y i ) (x_i,y_i) (xi​,yi​), 价值为 z i z_i zi​ 。当棒扫到某个 物件…

硬盘接口模式sata与ahci区别, U盘UEFI GPT与Legacy 启动项区别,硬盘格式MBR和gpt的区别

一。SATA和AHCI的主要区别在于它们的功能、接口类型和性能。‌ 功能和性能 SATA‌:Serial ATA(SATA)是一种硬盘接口标准,主要用于连接存储设备(如硬盘)到主机(如主板)。它经历了多个…