Android log

实时log

 1. 抓取应用程序的日志。

# adb logcat -b main -v threadtime > /sdcard/main.log

 2. 抓取跟 radio/telephony 相关的信息。

# adb logcat -b radio -v threadtime > /sdcard/radio.log

 3. 抓取系统事件日志,如触屏事件。

# adb logcat -b events -v threadtime > /sdcard/events.log

4. 抓取kernel log。

# adb logcat -b kernel > /sdcard/kernel.log
# adb shell dmesg > /sdcard/dmesg.log  //导出当前缓存的 kernel log
# adb shell kmsgcat   //实时查看kernel log
# adb shell cat /proc/kmsg > kernel.log  // 抓取 printk生成的内核消息

 5. 抓取 TCP/IP协议相关的日志

# adb shell tcpdump -s 10000 -w /sdcard/tcpip.pcap

状态log

1.获取系统状态信息,如手机的内存信息、CPU信息、缓存等。

# adb shell dumpstate > /sdcard/dumpstate.log

2. 获取系统进程有关的信息。比如:当前运行的服务,进程信息等。

# adb shell dumpsys

如果想查看特定进程的特定service ,如 com.android.mms进程的meminfo,可以使用

# adb shell dumpsys meminfo com.android.mms

service有一下几种:

meminfo   显示内存信息

cpuinfo      显示CPU信息

account     显示accounts信息

activity      显示activities的信息

window      显示键盘,窗口和它们的关系

wifi           显示wifi信息    

3. 获取 所有状态信息。包括 dumpsys,dmesg和dumpstate

# adb shell bugreport > /sdcard/bugreport.log

4. 查看内存信息

# adb shell cat /proc/meminfo
# adb shell cat /proc/vmstate  //查看虚拟内存信息

log 分析

1. 有没有捕获异常

关键字: Exception

2. ANR

ANR的log一般都位于 /data/anr/,

关键字: ANR

例子: E/ActivityManager( 957): ANR in com.ipanel.join.appstore

3. Fatal

Fatal 一般比较严重,很多都很动态库和空指针有关,一般会接下来打印"Build fingerprint:" 或 ”NullPointerException“

4. 动态库问题

关键字: Build fingerprint

5. 空指针问题

关键字:NullPointerException

6. kernel panic

只有加载到内核空间的驱动模块才能直接导致kernel panic,你可以在系统正常的情况下,使用lsmod查看当前系统加载了哪些模块。
除此之外,内建在内核里的组件(比如memory map等)也能导致panic。

kernel panic分为 两种:

hard panic(关键字: Aieee)

soft panic(关键字: Oops)

参考: http://www.chengxuyuans.com/Android/64872.html

7.tombstone

 tombstone 一般是由Dalvik错误,状态监视调试器,C层代码以及libc的一些问题导致的。
当系统发生tombstone的时候,kernel首先会上报一个严重的警告信号(signal),上层接收到之后,进程的调试工具会把进程中当时的调用栈现场保存起来,并在系统创建了data/tombstones目录后把异常时的进程信息写在此目录里面,开发者需要通过调用栈来分析整个调用流程来找出出问题的点。
日志路径: /data/tombstones

8. system crash

kernel log会出现: service 'activity' died

‘activity' 可以是任意的activity。

几种issue的区分

1. kernel panic:板子会reset到固定页面,如"EMMD USB DUMP"。

2. System hang: 触摸按压没有任何反应,console没有输出。

3. UI hang: 系统UI没有任何反应,但是console或者adb shell 有输出。

4. system crash: 可能会自动重启。

原文地址:https://www.cnblogs.com/miniren/p/4764150.html