Android Block库发布

Posted on By Vivian Sun

简介

今天发布封装的Android Block框架

Android 版本

Android版本:Android 4.1 API 16以上支持。

jCenter发布地址

AndroidBlockMonitor Github

AndroidBlockMonitor jCenter

原理

基于Choreographer.FrameCallback 。Choreographer类的FrameCallback是系统每隔16ms发出VSYNC信号,来通知界面进行重绘、渲染的回调。

  • 利用两次回调的时间差十分超出16ms来判断卡顿
  • 当每一帧被渲染时会触发回调FrameCallback, FrameCallback回调void doFrame (long frameTimeNanos)函数
  • 检查两次doFrame的间隔,如果大于16.6ms说明发生了卡顿

默认卡顿阈值:80ms = 5*16.6ms

默认抓取log频率:即两次Frame刷新之间获取 次

流程图

使用

Gradle

compile 'com.learn.blockmonitor:AndroidBlockMonitor:1.0.180326'

Maven

<dependency>
  <groupId>com.learn.blockmonitor</groupId>
  <artifactId>AndroidBlockMonitor</artifactId>
  <version>1.0.180326</version>
  <type>pom</type>
</dependency>
  1. 加载和启动Application的OnCreate

     @Override
     public void onCreate() {
         super.onCreate();
         BlockMonitor.getInstance().install(this).start();
     }
    
  2. 暂停

    BlockMonitor.getInstance().install(this).stop();

  3. 卸载

    BlockMonitor.getInstance().install(this).uninstall();

效果


Notification


Log详情

空白部分后期会显示波形图(Frame-Time,Frame-DropCount等)

log信息

  • 主线程StackTrace
  • Frame刷新时间,droppedCount(diff/16.6)
  • CPU状态:CPU Core,是否busy等
  • Memory状态:all memory, free memory等
  • 外部传入备注信息(例如,package name, version, etc)

TODO

详情上方的波形图