Android卡顿监控 安卓手机性能监控插件手机插件「Android卡顿监控 安卓手机性能监控插件」
本文主要是记录笔者接入微信性能监控框架Matrix的过程,以及简单阐述如何分析Matrix输出的监控数据。
一般我们是在app module下的build.gradle进行依赖,但是笔者比较喜欢按功能划分module,所以新建一个Module: apmlib, 并且在apmlib的build.gradle下进行依赖。
本文只使用了Matrix的TraceCanary和IOCanary来做Demo, Matrix的功能远不止这些,还有其他的Canary,可以按需接入。
此外,初始化的时候,可以继承Matrix的DefaultPluginListener进行性能监控的数据监听以及实现IDynamicConfig自定义一些性能监控的阈值。
Matrix 对堆栈进行了聚合,解决堆栈数据量大,后台很难聚类的问题,详细原理见:
Matrix Android TraceCanary · Tencent/matrix Wiki · GitHub
根据TraceStack 的 methidId,在项目app-build-outputs-mapping-debug-methodMapping.txt 找到对应方法。
启动速度监控根据Matrix Trace-Canary 的StartupTracer开头注释很容易理解
application_create: 第一个方法调用时 到 四大组件创建时 对应下图applicationCost
first_activity_create: 第一个方法调用时 到 首个Activity.onWindowFocusChange 对应下图firstScreenCost
冷启动:第一个方法调用时 到 MainActivity.onWindowFocusChange 对应下图coldCost
温启动:首个Activity.onCreate 到 首个Activity.onWindowFocusChange 对应下图warmCost
过滤TAG :Trace_FPS 可以得到帧率监控数据
关键字段解析:
scene: 关键页面
dropLevel: 一个采样周期,根据每60帧的丢帧数落入不同区间的次数。
DROPPED_FROZEN 代表采样周期内每60帧丢了42帧以上的次数
DROPPED_HIGH 代表采样周期内每60帧丢了24-42帧的次数
DROPPED_MIDDLE 代表采样周期内每60帧里丢了9-24帧的次数
DROPPED_NONAL 代表采样周期内每60帧里丢了3-9帧的次数
DROPPED_BEST 代表采样周期内每60帧丢了0-3帧的次数
dropSum: 一个采样周期,落入不同区间的累计丢帧数。
DROPPED_FROZEN 代表采样周期内每60帧丢了42帧以上的累计丢帧数
DROPPED_HIGH 代表采样周期内每60帧丢了24-42帧的累计丢帧数
DROPPED_MIDDLE 代表采样周期内每60帧里丢了9-24帧的累计丢帧数
DROPPED_NONAL 代表采样周期内每60帧里丢了3-9帧的累计丢帧数
DROPPED_BEST 代表采样周期内每60帧丢了0-3帧的累计丢帧数
fps: 帧率, 监控指标
诸暨版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com