ADB—查看日志
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。
注: 有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。
- [查看日志]
- [Android 日志]
- [按级别过滤日志]
- [按 tag 和级别过滤日志]
- [日志格式]
- [清空日志]
- [内核日志]
- [Android 日志]
查看日志
Android 系统的日志分为两部分,底层的 Linux 内核日志输出到 /proc/kmsg,Android 的日志输出到 /dev/log。
Android 日志
命令格式:
[adb] logcat [
常用用法列举如下:
按级别过滤日志
Android 的日志分为如下几个优先级(priority):
- V —— Verbose(最低,输出得最多)
- D —— Debug
- I —— Info
- W —— Warning
- E —— Error
- F —— Fatal
- S —— Silent(最高,啥也不输出)
按某级别过滤日志则会将该级别及以上的日志输出。
比如,命令:
adb logcat *:W
会将 Warning、Error、Fatal 和 Silent 日志输出。
(注: 在 macOS 下需要给 *:W
这样以 *
作为 tag 的参数加双引号,如 adb logcat "*:W"
,不然会报错 no matches found: *:W
。)
按 tag 和级别过滤日志
可以由多个
组成。
比如,命令:
adb logcat ActivityManager:I MyApp:D *:S
表示输出 tag ActivityManager
的 Info 以上级别日志,输出 tag MyApp
的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。
日志格式
可以用 adb logcat -v
选项指定日志输出格式。
日志支持按以下几种
:
-
brief
默认格式。格式为:
/ ( ): 示例:
D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
-
process
格式为:
( ) 示例:
D( 1785) Disconnected process message: 10, size: 0 (HeadsetStateMachine)
-
tag
格式为:
/ : 示例:
D/HeadsetStateMachine: Disconnected process message: 10, size: 0
-
raw
格式为:
示例:
Disconnected process message: 10, size: 0
-
time
格式为:
/ ( ): 示例:
08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
-
threadtime
格式为:
: 示例:
08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0
-
long
格式为:
[
: / ] 示例:
[ 08-28 22:39:39.974 1785: 1832 D/HeadsetStateMachine ]Disconnected process message: 10, size: 0
指定格式可与上面的过滤同时使用。比如:
adb logcat -v long ActivityManager:I *:S
清空日志
adb logcat -c
内核日志
命令:
adb shell dmesg
输出示例:
<6>[14201.684016] PM: noirq resume of devices complete after 0.982 msecs<6>[14201.685525] PM: early resume of devices complete after 0.838 msecs<6>[14201.753642] PM: resume of devices complete after 68.106 msecs<4>[14201.755954] Restarting tasks ... done.<6>[14201.771229] PM: suspend exit 2016-08-28 13:31:32.679217193 UTC<6>[14201.872373] PM: suspend entry 2016-08-28 13:31:32.780363596 UTC<6>[14201.872498] PM: Syncing filesystems ... done.
中括号里的 [14201.684016]
代表内核开始启动后的时间,单位为秒。
通过内核日志我们可以做一些事情,比如衡量内核启动时间,在系统启动完毕后的内核日志里找到 Freeing init memory
那一行前面的时间就是。
更多相关文章
- Android(安卓)ApiDemos示例解析(150):Views->Layouts->LinearLay
- android中的显示跳转和隐式跳转
- Android小案例——简单图片浏览器
- OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接
- github项目解析(五)-->android日志框架
- 总结系列-硬件加速
- Android中绘制图表解决方案
- Android(安卓)开发技巧之Log发送UDP报文,Socket编程
- 阅读手札:《:第一行代码》(第一章)