通用
tag:类型,Trace_StartUp,Trace_FPS 等
process:监测进程
type:类型,用于区分同一个tag不同类型的上报
key:每个Tracer不同
time:上报时间
content:上报的主体内容
machine:BEST 机器分级 BEST, HIGH, MIDDLE, LOW, BAD, UN_KNOW;
cpu_app:CPU使用率
mem:总内存大小
mem_free:可用内存大小
FrameTracer
scene:当前可见的activity
dropLevel:记录各个卡段级别出现的次数,卡顿级别可分为DROPPED_FROZEN,DROPPED_HIGH,DROPPED_MIDDLE,DROPPED_NORMAL,DROPPED_BEST;例:
"DROPPED_MIDDLE":18,表示时间阈值内共有 18此时 DROPPED_MIDDLE的情况
dropSum:记录各个卡段级别掉帧总数,例:
"DROPPED_MIDDLE":218, 表示时间阈值内共有 218帧是 位于 DROPPED_MIDDLE
fps:时间阈值内的平均帧率
dropTaskFrameSum:不太清楚
StartupTracer
tag: Trace_EvilMethod or Trace_StartUp
application_create:(Application的启动时间)第一次启动Activity或者Service或者广播的时间(这里没有内容提供者是因为内容提供者是在Application初始化完成之前,加载完毕的) 减去 Application开始启动时间
application_create_scene:启动场景 Activity(159,100),Service(114),broadcastReceiver()113
first_activity_create:(首屏启动时间)第一个Activity 可操作的时间(Activity获取焦点) 减去 Application开始启动时间
startup_duration:启动时间可分为 :
* (冷启动时间):主Activity可操作的时间(Activity获取焦点) 减去 Application开始启动时间
* (暖启动时间):最近一个Activity开始启动的时间 减去 这个Activity可操作的时间(Activity获取焦点)
is_warm_start_up:是否是暖启动
detail:固定为STARTUP
cost:总耗时同 startup_duration
stack:方法栈信息, 每个item之间用“\n”隔开,每个item的含义为,调用深度,methodId,调用次数,耗时
* 比如:0,118,1,5 -> 调用深度为0,methodId=118,调用次数=1,耗时5ms
stackKey:主要耗时方法 的methodId
subType:2:暖启动,1:冷启动
EvilMethodTracer
tag: Trace_EvilMethod
detail:固定为NORMAL
cost:总耗时
usage:主线程cpu占用率
scene:当前可见Activity名称
stack:方法栈信息, 每个item之间用“\n”隔开,每个item的含义为,调用深度,methodId,调用次数,耗时
* 比如:0,118,1,5 -> 调用深度为0,methodId=118,调用次数=1,耗时5ms
stackKey:主要耗时方法 的methodId
AnrTracer
tag: Trace_EvilMethod
key:token(dispatchStart的时间)
detail:固定为ANR
cost:总耗时
usage:主线程cpu占用率
scene:当前可见Activity名称
stack:方法栈信息, 每个item之间用“\n”隔开,每个item的含义为,调用深度,methodId,调用次数,耗时
* 比如:0,118,1,5 -> 调用深度为0,methodId=118,调用次数=1,耗时5ms
stackKey:主要耗时方法 的methodId
threadStack:堆栈信息
processPriority:动态线程优先级
processNice:(静态线程优先级)
isProcessForeground:是否是后台线程
memory:内存情况包含如下三部分
dalvik_heap:dalvik已使用内存大小(KB)
native_heap:native已使用内存大小(KB)
vm_size:虚拟内存总大小
系列文章
参考
Matrix Android data format
网友评论