Android卡顿检查-BlockCanary浅析

0
回复
138
查看
[复制链接]

262

主题

265

帖子

4571

安币

手工艺人

发表于 2019-5-20 10:15:01 | 显示全部楼层 |阅读模式
如果对本篇文章感兴趣,请前往,原文地址:http://www.apkbus.com/blog-865196-80095.html

## BlockCanary是什么?BlockCanary是国内开发者MarkZhai开发的一套性能监控组件,主要通过监控```Handler```中的```dispatchMessage```过程所消耗的时间是否超过阀值来判断是否发生卡顿。## 检测原理界面卡顿主要是因为消息分发处理的不及时导致的,Android的消息分发机制主要是由```Message/Looper/Handler```由于主线程只存在一个```Looper```,并且Android系统所有更新UI的操作都是在主线程里面执行的.因此所有的UI操作都会经过主线程的```Looper```消息循环。其中```Looper#loop```中有那么段代码```javapublic static void loop() {    ...    for (;;) {        ...        //默认为null,可通过setMessageLogging()方法来指定输出,用于debug功能        Printer logging = me.mLogging;        if (logging != null) {//事件分发之前的时间T1logging.println(">>>>> Dispatching to "   msg.target   " "          msg.callback   ": "   msg.what);        }        msg.target.dispatchMessage(msg);        if (logging != null) {//事件分发之后的时间T2logging.println("
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )