转贴  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 输出错误日志

Android调试之Logcat的更多相关文章

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

    手机连接电脑RUN AS logcat 提示:Unable to open log device '/dev/log/main': No such file or directory 信息 本人华为C ...

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

    1 输出日志的方式,当然是cc.log了 2 如何查看日志?        a)如果小程序可以先在浏览器上跑,例如用chrome,在控制台就可以看到输出的log:        b)如果在真机上调试, ...

  3. android Log 等级以及在Android Studio 的Logcat中过滤方法

    Log等级 等级越高,问题越严重. Log.e(TAG,"级别5,错误信息"); Log.e(TAG,"级别5,错误信息"); Log.w(TAG," ...

  4. [Android学习笔记]Android调试

    Eclipse Debug 快捷键: [Ctrl + Shift + B]: 添加/取消断点 [F5]:进入方法中 [F6]:单步执行 [F7]:执行完毕此方法 [F8]:继续执行,直接跳到下一个断点 ...

  5. Android调试优化篇

    为了开发出商业级的应用程序,大规模的測试是不可避免的,同一时候为了提高应用程序的执行速度,须要进行必要的优化.在Android中.提供了丰富的调试与优化工具供开发者应用,主要包含模拟器和目标端等两种场 ...

  6. Android调试桥-Android Debug Birdge详解

    原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...

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

    转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ...

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

    Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ...

  9. Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看

    Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...

随机推荐

  1. linux命令学习笔记(30): chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID: 文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷 ...

  2. bzoj3163 Eden的新背包问题

    多重背包,$q$ 次询问,每次问删一个物品之后花费 $x$ 能装多少物品 $n \leq 3000, x \leq 1000, q \leq 300000$ sol: 网上有很多假做法 正解应该是考虑 ...

  3. 每天一个linux命令(14):less命令

    版权声明更新:2017-05-18博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...

  4. [BZOJ1022][SHOI2008]小约翰的游戏

    bzoj luogu sol 显然这个玩意儿和普通\(Nim\)游戏是有区别的. 形式化的,\(Nim\)游戏的关键在于决策集合为空者负,而这里的决策集合为空者胜. 所以就显然不能直接用\(SG\)函 ...

  5. element table固定表头,表的高度自适应解决方法

    主要是通过在mounted生命周期中,改变tableHeight的值,来让表格的高度自适应. 标签: <el-table ref="table" :data="ta ...

  6. selenium+headless chrome安装使用

    pip install selenium 因为phantomJS将停止维护,所以建议使用headless chromeChromeDriver is a separate executable tha ...

  7. MSSQL2008 常用sql语句

    一.基础 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  8. 第二届PHP全球开发者大会(含大会的PPT)

    PHP全球开发者大会于2016年5月14日至15日在北京召开 更多现场图片请猛击: http://t.cn/RqeP7y9 ,  http://t.cn/RqD8Typ 最后,这次大会的PPT可以在这 ...

  9. JSP/java 执行创建批处理文件,并执行批处理事务。

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) { InputStream in = null; Inpu ...

  10. ov2640数据

    问题部分解决,数据错误的原因是太快了.将0x11->3f  0xd3->7f 哈哈 问题解决 直接降低7670输出频率 调0x11到最大分频比 现在能完整抓拍QVGA的图像 不过就是采集速 ...