1. Enent日志分析
1.1 crash 格式
am_crash:User ,PID ,ProcessName,Flags ,Exception,Message,File,Line
- am_low_memory:位于AMS.killAllBackgroundProcesses或者AMS.appDiedLocked,记录当前Lru进程队列长度。
- am_pss:位于AMS.recordPssSampleLocked(
- am_meminfo:位于AMS.dumpApplicationMemoryUsage
- am_proc_start:位于AMS.startProcessLocked,启动进程
- am_proc_bound:位于AMS.attachApplicationLocked
- am_kill: 位于ProcessRecord.kill,杀掉进程
- am_anr: 位于AMS.appNotResponding
- am_crash:位于AMS.handleApplicationCrashInner
- am_wtf:位于AMS.handleApplicationWtf
- am_activity_launch_time:位于ActivityRecord.reportLaunchTimeLocked(),后面两个参数分别是thisTime和 totalTime.
- am_activity_fully_drawn_time:位于ActivityRecord.reportFullyDrawnLocked, 后面两个参数分别是thisTime和 totalTime
- am_broadcast_discard_filter:位于BroadcastQueue.logBroadcastReceiverDiscardLocked
- am_broadcast_discard_app:位于BroadcastQueue.logBroadcastReceiverDiscardLocked
1.2 event log输出格式
通过adb logcat输出的event log文件,每一行都是以如下格式作为开头信息 格式:timestamp PID TID log-level log-tag tag-values
zhanghu@winth:~$ adb logcat -b events -d 09-19 10:47:24.111 3358 4026 I am_focused_activity: [0,com.android.launcher3/.Launcher] 09-19 10:47:24.132 3358 4026 I am_pause_activity: [0,98033839,com.android.settings/.Settings]
1.3 event log格式分析
event log文件格式:timestamp PID TID log-level log-tag tag-values 分为两部分看: 第一部分 timestamp PID TID log-level 第二部分 log-tag tag-values
这里重点主要看第二部分(log-tag tag-values),以am相关的tags来讲述
1.4 实例解析
event log: 09-06 16:18:46.197 1632 2405 I am_proc_start: [0,4394,1000,com.android.usbsecurity,broadcast,com.android.usbsecurity/.UsbSecurityReceiver]
根据上面这个定义我们就知道event log的tag-values这个值的含义了,放在一起对比下: am_proc_start (User|1|5),(PID|1|5),(UID|1|5),(Process Name|3),(Type|3),(Component|3) am_proc_start: [0,4394,1000,com.android.usbsecurity,broadcast,com.android.usbsecurity/.UsbSecurityReceiver] 含义: 进程启动: pid=4394,uid=1000, 进程名=com.android.usbsecurity, 类型broadcast,相应组件=com.android.usbsecurity/.UsbSecurityReceiver