Android调试之Logcat

转贴  http://www.cnblogs.com/adison/p/4264284.html

在Android开发过程中,总免不了要调试,无论是Debug,还是Android自带的Logcat,抑或DDMS等等,使用得当会给我们开发带来事半功倍的作用。平时各种调试手段都试过,但很多东西,特别是一些命令,用完就忘了,想起来要用又要google;所以打算把这些东西整理出来,方便日后查看,也算是对一些经验的总结

Logcat

1.查看Android的logcat日志

Android系统在运行时会产生很多日志,以方便开发人员调试。Logcat日志是保存在洗头膏内存中的,从系统启动后就将系统各模块和各应用输出地日志统一放在内存中的一个环状队列中。将日志保存在系统内存中,确保了日志功能不会影响应用的速度,而环状队列是避免日志无限增长(环/Users/adison/octopress/source/_posts/2014-10-18-volley-cachefen-xi.markdown状结构,最后一个记录写满后会从第一个位置开始写)。
可以使用 “adb logcat” 查看这个内存中的日志

在应用中可以用Log类中的方法输出logcat日志。下面是几个常用的日志函数:

  • v(String,String) 记录冗余级别的日志
  • d(String,String) 记录调试级别的日志
  • i(String,String) 记录信息级别的日志
  • w(String,String) 记录警告级别的日志
  • e(String,String) 记录运行错误级别的日志

它们的优先级由低到高是v < d < i< w< e

2.过滤logcat日志

2.1.基于优先级

adb logcat提供了额外的功能,可基于日志优先级来过滤日志。用法为adb logcat *:#,其中#为上述级别之一。

所有优先级都自动包含比它高的优先级,因此adb logcat :W包含警告、错误和致命错误。当应用崩溃时,您可以使用adb logcat :E来查看导致该问题的原因,而不必费力去查看那些不着边际的调试用日志。然而在将日志提供给开发者时,应包含所有日志(不要设置任何过滤),因为通过调试日志通常可以找到问题的真正原因。

在调试应用时,可以使用“<标签>:<优先级>”的过滤条件去除很多不相关的日志。其中<标签>条件告诉logcat只输出具有制定标签的日志,而“优先级”条件则告诉logcat要输出日志的最低优先级,可以在logcat命令行中同时制定多个过滤条件,每个条件使用空格分隔即可。下面的命令只输出变标签为“ActivityManager”,优先级高于“信息”级别,标签为“dalvikvm”,优先级高于“调试”级别的消息,最后的“*:s”过滤条件将具有其他标签的日志消息全部屏蔽。

adb  logcat ActivityManager:I dalvikvm:D  *:s

2.2.基于内容

您还可以基于“内容”来过滤。比方说,您要收集所有提到术语“Google”的日志行。可以这么做:

adb logcat | grep Google

3.其他技巧

清空

如果您发现屏幕上塞满了没用的日志信息,但仍需要详细的日志,可以使用adb logcat -c清除日志缓冲区。它会重置日志并只显示重置后的日志内容。

Logcat用于错误跟踪

adb shell
logcat -d -f /sdcard/logcat.log *:E

-d 转存logcat内容
-f 指定日志保存位置
*:E 输出错误日志

时间: 2024-10-13 08:13:47

Android调试之Logcat的相关文章

华为手机在开发Android调试时logcat不显示输出信息的解决办法

手机连接电脑RUN AS logcat 提示:Unable to open log device '/dev/log/main': No such file or directory 信息 本人华为C8812手机,获得ROOT权限(http://dl.vmall.com/c032h3j6dv 下载归一版,然后执行安装,按照提示操作即可) 华为C8812手机,获得root权限后 手机拨号*#*#2846579#*#*,进入projectmenu--后台设置--LOG设置--LOG开关--打开: 然

cocos2d-js 写日志log 查看日志log Android调试查看log

1 输出日志的方式,当然是cc.log了 2 如何查看日志?        a)如果小程序可以先在浏览器上跑,例如用chrome,在控制台就可以看到输出的log:        b)如果在真机上调试,就需要用log工具了.Android上使用logcat.   3 Android调试使用logcat的办法 logcat位置:Android SDK目录中 D:\AndroidDevelopTools\sdk\platform-tools 查看步骤: 连接手机 cmd方式打开logcat:adb.e

Android调试优化篇

为了开发出商业级的应用程序,大规模的測试是不可避免的,同一时候为了提高应用程序的执行速度,须要进行必要的优化.在Android中.提供了丰富的调试与优化工具供开发者应用,主要包含模拟器和目标端等两种场景下使用的工具. 1.Android调试 软件调试是一个伴随软件开发的必定过程.好的调试环境和工具能够提高开发的效率.在Android中,除了提供GDB调试外.还提供了DNSS.Logcat.Dmtracedump.DevTools.Procrank.Dumpsys等开发工具供开发人员使用,当中DM

android 调试

遇到错误,不能光看logcat 也必须看console,logcat都是些运行时错误,而编译错误会在console中显示,比如某些包没有导入,某些包重复了,包冲突等等,这些错误虽然不会报错,但会导致程序运行不了. 还有就要学会使用断点调试,可以动态帮你分析运行时变量的变化和程序运行的流程.搜索工具:谷歌,百度是不用说的. android 调试,布布扣,bubuko.com

转:Android 调试桥(adb)是多种用途的工具

转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Contents 概要 发出adb命令 查询模拟器/设备实例 给特定的模拟器/设备实例发送命令 安装软件 转发端口 从模拟器/设备中拷入或拷出文件 A

Android 调试桥(adb)是多种用途的工具

Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Contents 概要 发出adb命令 查询模拟器/设备实例 给特定的模拟器/设备实例发送命令 安装软件 转发端口 从模拟器/设备中拷入或拷出文件 Adb命令列表 启动shell命令 通过远程shell端运

Android 调试桥(ADB)

Android 调试桥指的就是 adb.exe 工具( Android Debug Bridge , ADB),存在于 SDK 的platform-tools 目录中,允许开发人员与模拟器或者连接的 Android 设备进行通信.为了使用该指令快速完成某项操作,需要将 adb.exe 所在的目录配置到 path 环境变量中,之后就可以在命令行窗口中使用. ADB 的常见指令介绍如下: adb start-server:开启 adb 服务. adb devices:列出所有设备. adb logc

Android调试大法 自定义IDE默认签名文件

版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com Android调试大法之自定义IDE默认签名文件,你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在debug时第三方功能测试通过,而release时无法使用? 如果你没有遇到我说的问题,那么我举几个例子. 微信支付.微信登录.微信分享,debug时调试通过,release时调不起微信? 如果你没做过,你可以看这篇文章微信登录.微信分享教程. 百度地图.高德地图,要

(转)当android调试遇到ADB server didn&#39;t ACK以及顽固的sjk_daemon进程 .

转:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会儿出现 相信做过android调试的同学都遇到过这个问题,网上说kill掉跟adb相关的进程,重启Eclipse 可是我在任务管理器上没有看到明显的adb进程,我们如何找到它们呢 首先,打开cmd,使用adb命令检查一下,最好是把adb命令的路径放在系统的path环境变量里, 用adb命令也会方便一些 通