美文网首页安卓开发常用工具插件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