Android Logcat&debug实用技巧

Android Debug 之 Log 最佳实践 本文微信公众号「AndroidTraveler」首发。 背景 在开发过程中,调试是必不可少的一项工作。 当我们要确定项目的逻辑时,当我们要了解界面的生命周期时,当我们发现新写的逻辑与期望效果不一致时,当我们觉得数据有问题时… 而调试有两种方式: 第一种就是使用 debug 模式运行 APP,然后通过断点让程序运行到指定位置进行分析。 第二种就是打日志的方式,通过观察输出来确定程序是否运行到该位置以... 阅读详情

logcat 作为我们最常用的调试手段,相信大家都不会陌生。这里总结一下,在使用Logcat过程中,常用的一些debug技巧,目的是为了快速有效的帮助找到并解决问题。

先来看一看Logcat打印结构:
在这里插入图片描述

常用
logcat -v threadtime //打印出线程时间
logcat -v threadtime -s AndroidRuntime  
logcat -s AcitivityManager
logcat -s PackageManager
logcat -s PowerManagerService
logcat *:w //查看warning以上的log
打印该进程的信息
logcat | grep (4594)pid

通常我们无需关注其他进程的打印,只想看到本进程出现的问题

快速定位crash
logcat -b crash

这个使用的频率非常高,可以快速的帮我们找到系统在哪里挂掉

这里再补充一条特别有效的debug技巧:

  • java代码中打印堆栈
RuntimeException here = new RuntimeException("here");
                here.fillInStackTrace();
Slog.i(TAG_WM, "enableScreenAfterBoot: mDisplayEnabled=" + mDisplayEnabled
                        + " mForceDisplayEnabled=" + mForceDisplayEnabled
                        + " mShowingBootMessages=" + mShowingBootMessages
                        + " mSystemBooted=" + mSystemBooted, here);
  • c++代码中打印堆栈
#include <utils/CallStack.h>
android::CallStack stack;
stack.update();
android::String8 strtemp = stack.toString("");
ALOGD("\t%s", strtemp.string());
logcat -b events

查看acitity 生命周期
logcat -b events | grep -E “wm_|am_”
查看开机关键节点
logcat -b events|grep boot

dmesg

查看kernel 的打印信息
有些时候,kernel 打印,默认是关闭的,在启动参数里面设置了 quiet

init=/init console=ttyS0,115200 no_console_suspend earlycon=aml-uart,0xff803000 "\
			"ramoops.pstore_en=1 ramoops.record_size=0x8000 ramoops.console_size=0x4000 raid=noautodetect quiet
shell 脚本如何调试

通常我们在开机启动的服务脚本里面的打印是不会输出的
通常的做法是通过输出到文件,然后查看文件是否存在,判断这个脚本有没有执行。

function fun_preinstall()
{
	if [ ! -e /data/funsys.notfirstrun ]; then
		echo "do preinstall job"
		/system/bin/cmd package preinstall /vendor/preinstall
		touch /data/funsys.notfirstrun
		echo "preinstall ok"
	fi
}
保姆级教程:用YOLOv5s搞定钢材表面缺陷检测,从数据集NEU-DET到模型部署全流程 本文提供了一份详细的YOLOv5s钢材表面缺陷检测教程,涵盖从NEU-DET数据集处理到模型部署的全流程。针对工业环境中的实际限制,如计算资源有限和标注样本少等问题,提供了优化方案和实用技巧,帮助开发者快速实现高效的钢材缺陷检测系统。 阅读详情

相关推荐

Docker网络教程(四)macvlan 网络教程

在这种网络下,Docker 宿主机在它的IP之上,允许接受多个 MAC 地址的请求,然后再将这些请求路由至对应的容器里。流通,Docker 会用它的 MAC 地址,把流量路由进你的容器里。对于网络上的网络设备来说,你的容器似乎是物理上连接到网络上的。),Docker使用其MAC地址将流量路由到你的容器。对于网络上的网络设备来说,你的容器似乎是物理上连接到网络上的。你需要 3.9 或者更高版本的 Linux 内核,4.0 以及以上的版本是更好的。如果你的设备叫别的名字,用对应的名字代替。

weixin_42445065的博客 4132

adb logcat 命令

adb logcat 命令 adb 命令在移动端开发和测试中广泛使用 , 尤其在自动化测试脚本中很常见 . adb logcat用于输出设备日志,分析错误原因 . 本章主要说明 adb logcat 命令 . 有四部分组成,分别是命令格式, 常用命令 , shell脚本输出指定app日志 ,android系统log缓冲区. 一.命令格式 adb logcat [选项] [过滤项], 其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的; 选项解析: 1."-s"选项 : 只显示指定标签的日志;

zhaohuih的博客 3万+

AI大模型应用性能核心指标:TTFT 与 TPOT 详解

这两个指标专门衡量大模型流式响应性能,是评估用户体验的关键指标。· 是什么:从请求到第一个输出的等待时间· 为什么重要:决定用户的第一印象和响应感知· 优化方向:模型加载、预处理、冷启动优化· 行业标准:最好<500ms,可接受<1.5s· 是什么:每个输出token的平均生成时间· 为什么重要:决定流式输出的流畅度和总完成时间· 优化方向:推理引擎、内存带宽、批处理优化· 行业标准:最好<50ms/token,可接受<100ms/token在Dify/大模型应用中的意义。

lovehu6686的博客 3942

logcat 命令行用法

logcat 命令行用法 2016年09月20日 15:33:39 adaptiver 阅读数:3624更多 个人分类: android http://blog.youkuaiyun.com/tumuzhuanjia/article/details/39555445 -- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;   --"-f"选项 : 将日志输出到文件, 默认输出到标准输出...

weixin_42082222的博客 4349

微信小程序消息推送全攻略:从模板消息到订阅消息的实战避坑指南

本文深入解析微信小程序消息推送机制,对比模板消息、订阅消息与客服消息的核心差异与适用场景。重点提供订阅消息从用户授权设计、前端代码实现到后端稳定发送的完整实战指南,并分享提升消息点击率的文案与运营技巧,帮助开发者构建高效、用户友好的消息推送体系。

b3n4m5q6w7的博客 335

用Blender给ArduPilot无人船编队设计灯光秀:从建模到飞行的保姆级教程

本文详细介绍了如何利用Blender和ArduPilot为无人船编队设计灯光秀的全流程技术方案。从3D动画设计、坐标转换、数据导出到ArduPilot飞控配置和灯光控制,提供了一套完整的保姆级教程,帮助开发者实现水面灯光编队表演。

weixin_29213525的博客 386

logcat

adb logcat --help 查看帮助 adb logcat [选项] [过滤项] 选项 --"-s"选项 : 设置输出日志的标签, 只显示该标签的日志;      --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;      --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;     

AFull的博客 679

海康视觉相机驱动软件MVS参数配置全攻略(附接线图+避坑指南)

本文提供了海康视觉相机驱动软件MVS从硬件连接到软件参数配置的完整指南。详细解析了供电与通讯线缆的区分、PNP/NPN信号逻辑的接线避坑方法,并重点阐述了MVS软件中触发模式、网络IP配置、图像采集及光源控制等核心参数的设置技巧,旨在帮助用户快速完成相机调试,实现稳定高效的图像采集。

weixin_29204205的博客 396

c/c++打印带完整附加信息(带时间戳、pid等)的日志,类adb logcat -v threadtime格式

进来在Linux下开发中用到c/c++和nodejs混合编程,看到adb logcat -v threadtime 打出来的Log那么整齐规范,非常想把c/c++代码的log规范成这种效果一下, 需要这样做有两个原因: 1.有的人没有用到adb, 或者log不输出到控制台,没法用adb logcat -v threadtime。 2. adb logcat的时间戳是后加的,不是调用打印log

catsanddogsman的专栏 1万+

解决若依Vue3前后端分离---路由切换时显示白屏

解决基于Vue3若依前后端分离项目中出现的路由正常切换但是就是不显示数据的问题,也就是不发起网络请求的问题。

简单点的博客 1604

高速数字信号硬件设计:灵巧手方向核心技能与实战解析

在机器人产业加速演进的今天,灵巧手等高自由度末端执行器对硬件电路设计提出了更高要求。传统硬件工程师熟悉功能、功耗与EMC,而灵巧手设计还需在极小空间内融合多路电机驱动、高速数字接口与微弱模拟信号采集。信号完整性与电源完整性成为决定系统稳定性的关键:信号上升沿决定有效带宽,阻抗匹配、回流路径和去耦策略直接影响通信质量与抗干扰能力。从阻抗计算、等长设计到FPC布线,再到电源预算与纹波抑制,这些高速数字信号设计基础原理不仅适用于服务器主板,更是灵巧手控制器开发与调试的必修课。本文面向从事机器人硬件、嵌入式系统与电

weixin_29172963的博客 236

adb logcat 常用命令

logcat 工具在做android开发的过程中肯定是必不可少的,这里介绍几个我认为比较方便的logcat命令。 1. adb logcat; 这个最简化的一个打log的命令,不过默认打出的log信息太少,个人很少用 2. adb logcat -v time; 增加加了打印时间信息 3. adb logcat -v threadtime; 这个用的最多,不仅打

heaven_wsh的专栏 1万+

地平线旭日X3开发板--使用Opencv显示CSI摄像头例程

但是从libsrcampy获取的摄像头图像格式是NV12,无法直接在opencv上显示或者处理,调试过程发现旭日派无法直接用opencv的VideoCapture()调用CSI摄像头,需要使用opencv来做开发的小伙伴可以做个参考,效果如下图所示。需要使用libsrcampy库来获取CSI摄像头图像,为了能够使用opencv的API来处理图像,需要增加NV12转化成bgr像素格式的函数。opencv显示图像.png。

bingdund的博客 541

Android Logcat 高效调试指南

Logcat 是 Android SDK 提供的命令行日志工具,支持灵活过滤、格式定制和实时监控,官方文档详见。

aa25012的博客 848

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 抓log总结

android 抓log整理一下 1 实时看log logcat -v threadtime 可以打印thread id和时间 也可以加grep 过滤 例如: logcat -v threadtime · grep -iE "log_x" 不分大小写过滤出有log_x的log 可以-s 只要关键的tag(注意大小写) logcat -v threadtime -s MediaPl

lagelangri007的专栏 524

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android adb logcat命令

常用的其实就两三个命令12345直接显示日志信息,是会显示很多日志信息的,好像是从设备最近一次开机的日志开始显示最好的做法的先使用-c清除之前的日志信息,再触发事件,查看最近的日志信息##下面是我的一个示例:在MainActivity的生命周期中写几个方法打印Log,清除日志后,运行程序,查看日志文本。

码点 4965

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

命令行工具: logcat 使用详解

Logcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹,以及从您的应用中使用Log类写入的消息。 本页面介绍了命令行 Logcat 工具,但在 Android Studio 中,您也可以从Logcat窗口查看日志消息。要了解如何在 Android Studio 中查看和过滤日志,请参阅使用 Logcat 写入和查看日志。 命令行语法 要通过 ...

qianxuedegushi的博客 1万+

linux带时间的log格式化,c/c++打印带完整附加信息(带时间戳、pid等)的日志,类adb logcat -v threadtime格式...

近来在Linux下开发中用到c/c++和nodejs混合编程,看到adb logcat -v threadtime 打出来的Log那么整齐规范,非常想把c/c++代码的log规范成这种效果一下,需要这样做有两个原因:1.有的人没有用到adb, 或者log不输出到控制台,没法用adb logcat -v threadtime。2. adb logcat的时间戳是后加的,不是调用打印log当时的时间。...

weixin_42405980的博客 1488

adb logcat 命令行用法

本文为转载。 作者 :万境绝尘  转载请著名出处 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb logcat --help 命令, 就可以显示该命令的帮助信息; [plain] v

itol925的专栏 3065

非常实用的log调试工具:logcat

一.简介 1.logcat是android中的一个命令行工具,可以用于得到程序的log信息 2.常见的日志记录方法 A.logv --VERBOSE,显示全部信息 B.logd --DEBUG,显示调试信息 C.logi --INFO,显示一般信息 D.loge --ERROR,显示错误信息 二.常用命令 (1) adb logcat -help --显示帮助信息 (2) adb...

hengdada666的博客 4676

Android调试过程抓取带时间的logcat和kernel log打印

可以直接在串口输入以下命令实现: logcat -v time -f /data/logcat.log | cat /proc/kmsg | tee /data/kernel_dmesg.log 说明:logcat打印输出到data目录的logcat.log文件,dmesg打印,也就是kernel内核的打印会在data目录的kernel_dmesg.log文件中。 logcat 输出日志信息到文件中 – "-f"选项 : 该选项后面跟着输入日志的文件, 使用adb logcat -f /sdcard/log

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 7924

android调试——logcat详解

logcat到底怎么用才爽? 为此,我决定好好研究一下

to_perfect的博客 2437

Logcat

Logcat 是 Android SDK 里面提供的命令行下的 Logging 工具,用法简单,使用方便,相关的介绍可以参考 Android Developer 链接: http://developer.android.com/tools/help/logcat.html 用法 命令格式如下,在<option>可以指定一些选项,比如输出格式,指定 buffer 等;而在<fi...

chen245250566的专栏 1396

android adb logcat用法

logcat用法 官方文档:https://developer.android.com/studio/command-line/logcat TID(线程控制符)英文全称为THREAD Identifier,它也属于电工电子类技术术语。TID就是线程的身份标识,进程一运行系统就会自动分配给各线程独一无二的TID。 类似于进程的概念。 PID(Process Identification)操作系统里指进程识别号,也就是进程标识符。操作系统里每打开一个程序都会创建一个进程I...

yhm2046的专栏 1601

Android中记录与调试——Logcat和Debug的使用

作者:张伟      为了提高Android程序的开发效率,找错误和调试是很重要的。一般来说,首先使用Android的Logcat输出Log信息来查找或定位程序的错误,还可以使用Eclipse的Debug调试工具来协助调试。     本文先介绍如何使用Android的Logcat在开发环境中打印Log信息,然后介绍如何使用Elipse设置断点来调试Android程序。

移动平台应用软件开发技术 1万+

logcat用法

adb logcat -v threadtime -s TestAPP[UI]:* TestAPP[Logic]:* TestAPP[Model]:* TestAPP[Engine]:* > ~/mylogs/testapp.log 过滤器的格式是一个这样的串:   -s              设置过滤器,格式如下:                      [:priority]

edisonlg的专栏 2145
上一篇: Android Dumpsys 命令&实例&原理
下一篇: 实战-Android 预置第三方应用
尹杰Enjoy your code
博客等级 码龄13年 36粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值