butterknife

link:

  • 源码:http://jakewharton.github.io/butterknife/
  • 分析:http://www.jianshu.com/p/0f3f4f7ca505

配置

compile ‘com.jakewharton:butterknife:7.0.1’

与一般注解的区别

以往的注解:声明注解的生命周期为 RUNTIME,然后在运行的时候通过反射完成注入,这种方式虽然简单,但是这种方式多多少少会有性能的损耗。
Butter Knife,采用 Apt(Annotation Processing Tool) 技术。
apt介绍

APT 大概就是你声明的注解的生命周期为 CLASS,然后继承 AbstractProcessor 类。继承这个类后,在编译的时候,编译器会扫描所有带有你要处理的注解的类,然后再调用 AbstractProcessor 的 process 方法,对注解进行处理,那么我们就可以在处理的时候,动态生成绑定事件或者控件的 java 代码,然后在运行的时候,直接调用 bind 方法完成绑定。通过运行时 annotation 预处理技术实现动态的生成代码。

你可能感兴趣的:(butterknife)