Event日志分析和Android源码查看

2,587 阅读1分钟

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

1.5 Android源码查看

  1. cs.android.com/
  2. aospxref.com/
  3. www.androidos.net.cn/sourcecode