zoukankan      html  css  js  c++  java
  • Android 最简单的测试UI卡顿

    就两个类:

    public class BlockDetectByPrinter {
    private static final String START = ">>>>> Dispatching";
    private static final String END = "<<<<< Finished";
    public static void start(){
    Looper.getMainLooper().setMessageLogging(new Printer() {
    @Override
    public void println(String x) {
    if(x.startsWith(START)){
    LogMonitor.getsInstance().startMonitor();
    }
    if(x.startsWith(END)){
    LogMonitor.getsInstance().startMonitor();
    }
    }
    });
    }
    }


    public class LogMonitor {
    private static LogMonitor sInstance = new LogMonitor();
    private HandlerThread mLogThread = new HandlerThread("log");
    private Handler mIoHandler;
    private static final long TIME_BLOCK = 2000L;

    private LogMonitor(){
    mLogThread.start();
    mIoHandler = new Handler(mLogThread.getLooper());
    }
    private static Runnable mLogRunnable = new Runnable() {
    @Override
    public void run() {
    StringBuilder sb = new StringBuilder();
    StackTraceElement[] stackTrace = Looper.getMainLooper().getThread().getStackTrace();
    for(StackTraceElement s:stackTrace){
    sb.append(s.toString()+" ");
    }
    LogUtil.e("LogMonitor",sb.toString());
    }
    };
    public static LogMonitor getsInstance(){
    return sInstance;
    }
    // public boolean isMonitor(){
    // return mIoHandler.hasCallbacks(mLogRunnable);
    // }
    public void startMonitor(){
    mIoHandler.postDelayed(mLogRunnable,TIME_BLOCK);
    }
    public void removeMonitor(){
    mIoHandler.removeCallbacks(mLogRunnable);
    }

    }
    然后在application的onCreate方法使用
    BlockDetectByPrinter.start();



  • 相关阅读:
    Win10 64bit 下 Oracle 11g的安装
    删除服务列表中的任意服务 services.msc
    centos7修改docker镜像源的方法
    Docker零基础
    CentOS 查看日志命令
    mac 修改默认python,pip,为python3,pip3
    多次调用摄像头,需要考虑渲染问题
    Ant Designer Vue 中 layout 样式类名丢失
    Windows10 右键假死卡住转圈。
    mac 安装yarn
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/7865366.html
Copyright © 2011-2022 走看看