首页 > 其他 > 详细

BlockCanary

时间:2016-02-05 19:20:12      阅读:208      评论:0      收藏:0      [点我收藏+]

   BlockCanary:Android平台上的一个轻量的,非侵入式的性能监控组件

  github:https://github.com/moduth/blockcanary

  原理,Looper类中有个方法,循环处理消息

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);
        }

        ...
    }
}
可以看到前面都会用一个printer来打印输出,并且支持自己替换一个这个类,所以就自己写了一个类,继承Printer
在应用启动的时候,重新设置一个printer,并且同时使用2个HandlerThread开始记录信息。
记录了2大类信息,一种是主线程中的
getStackTrace,得到启发,主线程执行步骤可以通过这个方法获取
另外一种是cpu信息,因为android内核是linux的,所以直接访问了/proc/stat文件,获得整个cpu情况,得到启发,cpu信息可以通过这种方式获取
同时还使用了访问
"/proc/" + this.mPid + "/stat",获取当前应用的进程占用情况

BlockCanary

原文:http://www.cnblogs.com/liming-saki/p/5183418.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!