美文网首页
BlockCanary原理

BlockCanary原理

作者: 杨华_6f65 | 来源:发表于2019-04-28 16:04 被阅读0次

我们都知道Android应用程序只有一个主线程ActivityThread,这个主线程会创建一个Looper(Looper.prepare),而Looper又会关联一个MessageQueue,主线程Looper会在应用的生命周期内不断轮询(Looper.loop),从MessageQueue取出Message 更新UI。

public static void loop() {
    ...
    for (;;) {
        ...
        // This must be in a local variable, in case a UI event sets the logger
        Printer logging = me.mLogging;
        if (logging != null) {
            logging.println(">>>>> Dispatching to " + msg.target + " " +
                    msg.callback + ": " + msg.what);
        }
        msg.target.dispatchMessage(msg);
        if (logging != null) {
            logging.println("<<<<< Finished to " + msg.target + " " + msg.callback);
        }
        ...
    }
}

dispatchMessage的前后加log,然后比较这两个log的时间差,就是执行这个message的时间,如果大于16ms一般就会丢帧,你可以设置自己的一个阈值,如果超过这个阈值,就把方法栈给打印出来或显示出来。

相关文章

  • blockCanary原理

    blockCanary 对于android里面的性能优化,最主要的问题就是UI线程的阻塞导致的,对于如何准确的计算...

  • BlockCanary原理

    我们都知道Android应用程序只有一个主线程ActivityThread,这个主线程会创建一个Looper(Lo...

  • BlockCanary,LeakCanary原理

    BlockCanary 简介github地址,一款用来检测页面卡顿的非侵入式插件使用 然后在Application...

  • BlockCanary原理分析

    概述 BlockCanary是Android平台上的一个轻量的,非侵入式的性能监控组件,可以在使用应用的时候检测主...

  • 无标题文章

    APP性能优化 UI卡顿优化 View的绘制原理 UI卡顿原理分析 UI卡顿检测分析 BlockCanary原理分...

  • BlockCanary源码笔记

    BlockCanary 核心原理离不开主线程ActivityThread,用到了Handler,Looper;在L...

  • BlockCanary分析实现原理

    介绍 BlockCanary 一个android UI检测工具,追踪view耗时操作;附上地址:https://g...

  • Android卡顿监控方案实践

    Android卡顿监控方案实践 [TOC] 如果您是直接查看此文,可能需要知晓BlockCanary的原理作为本次...

  • 性能优化(7.3)-BlockCanary原理分析

    主目录见:Android高级进阶知识(这是总目录索引)[written by 无心追求] BlockCanary...

  • blockcanary源码学习随笔

    blockcanary是什么? blockcanary是国内开发者MarkZhai开发的一套性能监控组件,它对主线...

网友评论

      本文标题:BlockCanary原理

      本文链接:https://www.haomeiwen.com/subject/sjfjnqtx.html