登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 81|回复: 0

Android卡顿检查-BlockCanary浅析

[复制链接]

260

主题

261

帖子

4455

安币

手工艺人

发表于 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("
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区