美文网首页
BlockCanary监控卡顿

BlockCanary监控卡顿

作者: gczxbb | 来源:发表于2019-03-20 16:30 被阅读0次

总结

1,非侵入式,不需要打点,输出的信息可以精准定位问题到行,主要是监控主线程卡顿,在looper的looper方法,给主线程looper设置一个printer,打点统计handler的dispatchMessage方法执行的时间,看是否超过阀值,dump信息。
2,在dispatchMessage方法前后,有Printer日志输出,两侧调用时成对的。第一次调用记录时间设置调用标志,startDump,第二次stopDump,记录时间,恢复标志。
3,第一次调用时,dump堆栈和cpu信息,分别两个类stackSamper和cpuSamper采样。线程执行。公用父类,采样算法不同。
4,第二次调用时,记录时间,并判断与起始时间差是否超过阀值,卡顿时通过BlockListener的onBlockEvent回调监听,在工作线程,将采样数据封装一个BlockInfo,写入LogWriter,就是写入到一个文件中,如果开启走通知栏,那么将发出一条通知栏消息。
消息栏由BlockInterceptor完成,实现类DisplayService,在内部搞一个PendingIntent,通知栏。
主要技术点,在dispatchMessage方法的前后,logger方法日志中加入时间和开始以及停止的方法。根据dispatchMessage的时间间隔来判断是否卡顿。


任重而道远

相关文章

  • BlockCanary监控卡顿

    总结1,非侵入式,不需要打点,输出的信息可以精准定位问题到行,主要是监控主线程卡顿,在looper的looper方...

  • BlockCanary解析

    BlockCanary BlockCanary是markzhai同学的一个很实用的作品, 能检测到主线程的卡顿, ...

  • 21-性能优化

    一、CPU和GPU 二、卡顿产生的原因和优化 卡顿优化-CPU 卡顿优化-GPU 卡顿监测 监控卡顿的demo:推...

  • 无标题文章

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

  • 常规优化技巧

    卡顿优化 添加Observer到主线程RunLoop中,通过监听RunLoop状态切换的耗时,以达到监控卡顿的目的...

  • 开发工具

    1.Android UI卡顿监测框架BlockCanary https://www.jianshu.com/p/e...

  • 监控卡顿-Runloop

    1 对主线程Runloop注册一个回调函数runLoopObserverCallBack。在每次runloop的C...

  • 监控卡顿-FPS

    1 在主线程开启CADisplayLink调用函数displayLinkTick。 2 在displayLinkT...

  • 监控卡顿函数

    第一种、使用工具time profiler

  • Runloop监控卡顿

    一、监控卡顿的原理 1.1、原理 我们通过监听 NSRunLoop 的状态,就能够发现调用方法是否执行 时间过长,...

网友评论

      本文标题:BlockCanary监控卡顿

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