基于注解的代码运行时间统计工具

最近项目要做代码运行耗时分析,需要做一个用于统计代码段运行时间的util,方便结果输出和统计,思考了一下,觉得可以基于注解进行实现注解相关概念注解在Java中经常用到,相信大家也不会陌生。最常见的莫过于override,用于标记代码重写父类的方法。使用注解可以在一定程度上简化代码。一些常见的开源库也是采用了注解的方式:ButterknifeButterknife是为人熟知的Andr...
摘要由CSDN通过智能技术生成

最近项目要做代码运行耗时分析,需要做一个用于统计代码段运行时间的util,方便结果输出和统计,思考了一下,觉得可以基于注解进行实现

注解相关概念

  • 注解在Java中经常用到,相信大家也不会陌生。最常见的莫过于override,用于标记代码重写父类的方法。使用注解可以在一定程度上简化代码。
  • 一些常见的开源库也是采用了注解的方式:
    • Butterknife
      • Butterknife是为人熟知的Android view注入框架,常用的注解有@BindView,查看@BindView的代码如下
        @Retention(CLASS) @Target(FIELD)
        public @interface BindView {
          /** View ID to which the field will be bound. */
          @IdRes int value();
        }
        
      • 使用Butterknife的时候,通过调用 Butterknife.bind()使得注解生效,查看Butterknife.bind()的源码如下
        @NonNull @UiThread
        public static Unbinder bind(@NonNull Activity target) {
            View sourceView = target.getWindow().getDecorView();
            return createBinding(target, sourceView);
        }
        
        bind()函数获取了当前window的最顶层view,然后调用了createBinding,主要的绑定操作在这之后的函数中
        private static Unbinder createBinding(@NonNull Object target, @NonNull View source) {
            Class<?> targetClass = target.getClass();
            Constructor<? extends Unbinder> constructor = findBindingConstructorForClass(targetClass);
            ...
        }
        
        findBindingConstructorForClass函数就不做具体的分析了,可以理解为,Butterknife使用注解在编译时生成新的class,相当于帮使用者进行了findViewById()等操作。
    • EventBus
      • EventBus是一种用于Android的发布/订阅事件总线,常用的注解有@Subscribe,查看@Subscribe的代码如下:
        @Documented
        @Retention(RetentionPolicy.RUNTIME)
        @Target({ElementType.METHOD})
        public @interface Subscribe {
            ThreadMode threadMode() default ThreadMode.POSTING;
            boolean sticky() default false;
            int priority() default 0;
        }
        
        Ev
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值