美文网首页安卓开发常用工具插件Android 学习Utils
神兵利器-Android性能调优工具Hugo

神兵利器-Android性能调优工具Hugo

作者: wutongke | 来源:发表于2017-02-02 22:59 被阅读2410次

    在进行Android性能调优、减少应用卡顿时,寻找可优化的code是一个必要的过程。如何发现应用中的耗时任务甚至是耗时函数呢,如果可以在log中打印每个方法的执行时间,甚至把执行方法时的输入输出同时打印,绝对是非常棒的功能。

    幸运的是jake Wharton大神已经做出了这样的工具:Hugo。

    Hugo可以做什么

    Hugo可以打印一个方法的输入参数和函数的运行时间:

    Hugo怎么用

    Hugo 的使用非常简单,只需要在需要打印信息的方法上增加@DebugLog即可:

    @DebugLog
    public String getName(String first, String last) {
      SystemClock.sleep(15); // Don't ever really do this!
      return first + " " + last;
    }
    

    测试:

    V/Example: ⇢ getName(first="Jake", last="Wharton")
    V/Example: ⇠ getName [16ms] = "Jake Wharton"
    

    当然,使用之前需要在gradle中做一些配置工作:

    1. 添加依赖,配置插件
    buildscript {
      repositories {
        mavenCentral()
      }
    
      dependencies {
        classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
      }
    }
    
    apply plugin: 'com.android.application'
    apply plugin: 'com.jakewharton.hugo'
    

    2.Hugo设置
    需要关闭Hugo时,可以设置

    hugo {
      enabled false
    }
    

    也可以在代码中进行设置:

    Hugo.setEnabled(true|false)
    

    欢迎关注公众号wutongke,每天推送移动开发前沿技术文章:

    wutongke

    推荐阅读:

    神兵利器-Android性能调优工具Hugo

    神兵利器-内存调试插件

    炫酷的悬浮操作栏-谷歌出品

    ViewPager倒计时播放

    Android保存私密信息-强大的keyStore(译)

    相关文章

      网友评论

      • 子非鱼的那个鱼:楼主试过 Hugo.setEnabled(true|false) 这个函数吗? 不能用吧?
        be83680251d0:@若风似月 呃,刚才看了下源码,1.2.1版本确实没这个方法。我之所以说有这个方法是我记错了,我自己用的是通过AspectJ实现的一个自己改造过的Hugo库,所以记错了。
        10c310b8f24d:@龟兔赛竞走 是否是版本问题 我目前down下来的库都未包含这个方法
        be83680251d0:可以用的。。我这里能用。
      • micheal_chen:新工程可以这样做,对于已经上线的工程,如果想检测每个方法执行的时间,代码侵入性太强
        苌蓊芪:可以尝试写个插件在debug模式下利用javassist编译时插入注解实现对所有方法进行检测,只是log会刷屏

      本文标题:神兵利器-Android性能调优工具Hugo

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