实时运行统计数据 [app] [version]
运行总览
手机品牌: |
[brand] |
手机型号: |
[model] |
安卓版本: |
[api] |
是否Root: |
[root] |
CPU型号: |
[cpumodel] |
CPU制造商: |
[cpubrand] |
CPU核数: |
[cpucount] 个 |
CPU频率: |
[cpufreq] GHz |
GPU型号: |
[gpumodel] |
GPU制造商: |
[gpubrand] |
GPU频率: |
[gpufreq] MHz |
OpenGL版本: |
V[opengl] |
设备总内存: |
[devmem] M |
设备剩余内存: |
[devremainmem] M |
设备剩余内存百分比: |
[devremainmempercent] % |
Java堆限制内存: |
[maxcanusejavamem] M |
进程使用内存PSS: |
[pidmem] M |
进程剩余可用内存: |
[pidremainmem] M |
LargeHeap是否开启: |
[largeheap] |
全局硬件加速是否开启: |
[hardwareacce] |
进程使用内存USS: |
[ussmem] M |
SwappablePss: |
[swappablepss] M |
进程剩余可用内存: |
[pidremainmem] M |
Java堆内存占比: |
[pidmempercent] % |
PrivateClean: |
[privateclean] M |
PrivateDirty: |
[privatedirty] M |
SharedDirty: |
[shareddirty] M |
SharedClean: |
[shareddlean] M |
JAVA堆: |
[javaheap] M |
JAVA堆已用: |
[javaheapalloc] M |
JAVA堆空闲: |
[javaheapfree] M |
Java堆最大值: |
[maxjavaheap] M |
Native堆: |
[nativeheap] M |
Native堆已用: |
[nativeheapalloc] M |
Native堆空闲: |
[nativeheapfree] M |
Native堆最大值: |
[maxnativeheap] M |
MajorFault: |
[majorfault] |
分辨率宽度: |
[screenwidth] px |
分辨率高度: |
[screenheight] px |
屏幕密度: |
[screendensity] |
内存峰值: |
[maxmem] M |
峰值界面: |
[maxmemactivity] |
CPU峰值: |
[maxcpu] % |
峰值界面: |
[maxcpuactivity] |
移动数据发送: |
[mobiletx] |
移动数据接收: |
[mobilerx] |
所有数据发送: |
[totaltx] |
所有数据接收: |
[totalrx] |
电池初始电量: |
[startbattery] % |
电池目前电量: |
[endbattery] % |
充电状态: |
[batterycharging] |
电池状态: |
[batteryhealth] |
初始App数: |
[sratrunningapp] |
当前App数: |
[endrunningapp] |
初始Service数: |
[sratrunningser] |
当前Service数: |
[endrunningser] |
当前运行时线程数: |
[runtimethreadcount] |
进程最高总线程数: |
[maxthreadcount] |
最高运行时线程数: |
[maxruntimethreadcount] |
最高同时运行线程数: |
[maxrunningthreadcount] |
GC次数: |
[gccount] |
阻塞式GC次数: |
[blockgccount] |
阻塞GC时间: |
[blockgctime] |
IO阻塞: |
[iowiatcount] 次 [iowiattime] ms |
打开文件数: |
[openfilecount]个 |
内部存储大小: |
[innerstore] G |
内部存储剩余: |
[innerstorefree] G |
内置SD卡大小/剩余: |
[externalstore] / [externalstorefree] G |
设备分: |
[devscore] |
设备定级: |
[devclass] |
系统初始运行分: |
[sysinitscore] |
系统初始运行状态: |
[sysinitclass] |
系统运行平均分: |
[sysavgscore] |
系统运行最高分: |
[sysmaxscore] |
系统运行最低分: |
[sysminscore] |
系统运行评级: |
[sysclass] |
进程运行平均分: |
[pidavgscore] |
进程运行最高分: |
[pidmaxscore] |
进程运行最低分: |
[pidminscore] |
进程运行评级: |
[pidclass] |
系统1/5/15分钟负载: |
[avg1] / [avg5] / [avg15] |
进程调度中的等待时间: |
[pidwaitsum] ms |
进程调度的最大等待时间: |
[pidwaitmax] ms |
进程调度的等待次数: |
[pidwaitcount] |
初始New Thread数: |
[initnewthread] |
初始界面New Thread数: |
[bootactivitythread] |
启动完成New Thread数: |
[bootendthread] |
当前New Thread数: |
[currentthread] |
启动耗时: |
[boottime] |
冷启动判断: |
[coldboot] |
启动总CPU使用率: |
[bootsyscpu] % |
启动进程CPU总占比: |
[bootpidcpu] % |
进入后台时间: |
[uihidetime] |
内存等级: |
[memorytrim] |
后台发送数据: |
[bgtotaltx] |
后台接收数据: |
[bgtotalrx] |
数据解释
- API Level :
23 Android 6.0 ; 22 Android 5.1 ;
21 Android 5.0 ; 19 Android 4.4 ;18 Android 4.3 ;17 Android 4.2
;16 Android 4.1 ;15 Android 4.0.3 -
4.0.4 ;14 Android 4.0.1 - 4.0.2
- 布局深度: 首屏布局的总层级 / 相对布局的总层级数 / 第一个相对布局层级; 相对布局大于3级的,建议优化
- 布局耗时: 最大的一次测量、布局、创建DisplayList的时间 / 总耗时 / 触发布局的次数
- 布局优化: 多余的布局 / 可以优化的相对布局; 多余布局是一个Layout容器中,只有一个子View的,可以优化的相对布局是子View小于5个,且都是平铺的。
- 布局测量: 屏幕总View数量 / 可见的View数量 / 需要测量的次数
- 进入空闲: Acitvity进入界面展现后,主线程进入空闲的时间。如果是“ 主线程忙”
,则表示该界面有小于100ms且不断的有主线程事件,例如隐含的界面刷新或者动画,需要排查。
- 界面加载时间表示的是界面框架展现基本稳定的时间,不包含图片显示等的时间。进入空闲: 则表示主线程已经空闲,拖动会相对流畅了。
- IO等待/句柄数: 当前界面IO等待的次数和等待的时间,当前打开的文件句柄数(Debug有效)
运行的Activity数据
界面 |
布局深度 |
布局耗时 |
布局测量 |
生命周期 |
布局优化 |
内存起止 |
占比 |
Java |
Native |
CPU系统/进程 |
IO等待/句柄数 |
发送/接收 |
电量 |
加载类数 |
线程/负载 |
[activity]
Activity流畅度
界面 |
加载 |
进入空闲 |
停留 |
Cold |
界面分 |
系统分 |
进程分 |
GC/阻塞 |
阻塞时间 |
事件处理流畅度(100) 点击显示隐藏详情 |
拖动流畅度(60) 点击显示隐藏详情 |
滑动流畅度(60) 点击显示隐藏详情 |
[sm]
事件处理:触摸事件处理的低于10ms的占比 流畅率
:总次数/超过10ms的次数/处理事件耗时/最大间隔ms/引发布局次数/draw次数
|
拖动流畅度:手指拖动过程中能达到的FPS上限 流畅度
:总耗时/VSYNC次数/16ms+次数/超过16ms的时间ms/最大间隔ms
|
滑动流畅度:手指离开后的实际FPS FPS
:总耗时/总帧数/16ms+的帧数/超过16ms的时间ms/最大ms/引发布局次数
|
Activity平均流畅度
界面 |
加载 |
进入空闲 |
Cold |
事件处理流畅度(100) |
拖动流畅度(60) |
滑动流畅度(60) |
[avgsm]
纳入统计的执行完成的线程情况
序 |
是否启动阶段 |
线程名称 |
线程ID |
系统TID |
优先级(-20~19) |
开始运行时间 |
实际运行时间 |
CPU Time |
[statisticsthread]
启动阶段线程
线程名称 |
线程ID |
系统ID |
优先级(-20~19) |
状态 |
CPU Time |
最高CPU |
CPU占比 |
检测时间 |
调度等待次数 |
调度等待时间 |
IO等待 |
大约运行 |
调用栈 |
[bootthread]
全部线程
线程名称 |
线程ID |
系统ID |
优先级(-20~19) |
状态 |
CPU Time |
最高CPU |
CPU占比 |
检测时间 |
调度等待次数 |
调度等待时间 |
IO等待 |
大约运行 |
调用栈 |
[totalthread]
进入后台10s后仍然运行的线程
线程名称 |
线程ID |
系统ID |
优先级(-20~19) |
状态 |
总CPU Time |
后台CPU Time |
后台CPU占比 |
调度等待次数 |
调度等待时间 |
IO等待 |
调用栈 |
[bgthread]
内存 - 后台程序和Service情况(前30)
序号 |
进程名称 |
总内存 |
Java内存 |
共享内存 |
Service信息 |
[bgapp]
启动阶段进程CPU占比
序号 |
进程ID |
进程名称 |
CPU占比 |
0 |
0 |
启动阶段系统CPU平均使用率 |
[bootsyscpu] % |
[bootcpu]
残留的广播
跨进程BroadCast |
LocalBroadCast |
[leakbroadcast] |
[leaklocalbroadcast] |
全局广播执行过程跟踪
序号 |
所在界面 |
执行操作 |
广播所在类名 |
广播Action |
广播数量 |
[broadcasttrace]
Service跟踪
序号 |
所在界面 |
对应方法 |
Service名称 |
ServiceConnection |
实际耗时 |
CPU耗时 |
所属线程 |
线程优先级 |
[servicetrace]
Activity生命周期性能跟踪
序号 |
Activity名称 |
执行方法 |
实际耗时 |
CPU耗时 |
[activitytrace]
ActivityManager中的耗时方法性能跟踪
序号 |
Activity名称 |
方法名称 |
实际耗时 |
CPU耗时 |
所属线程名称 |
线程优先级 |
调用栈 |
[activitymanagertrace]
注册的内存变化监听ComponentCallbacks
可能泄露的界面
SharedPreference文件检测
序号 |
文件名称 |
文件大小 |
包含大块数据 |
包含Json |
包含Html特殊符号 |
[sharedpreference]
内存中已经加载的SharedPreference检测
序号 |
SharedPreference |
包含条目数 |
字符串条目数 |
字符串总长度 |
[loadsharedpreference]
LifeCycle检测
主线程耗时检测
序号 |
界面 |
实际耗时 |
CPU Time |
函数名称 |
堆栈信息 |
[mainthreadtime]