butterknife
2016-06-16 本文已影响27人
jacky123
link:
配置
compile ‘com.jakewharton:butterknife:7.0.1’
与一般注解的区别
以往的注解:声明注解的生命周期为 RUNTIME,然后在运行的时候通过反射完成注入,这种方式虽然简单,但是这种方式多多少少会有性能的损耗。
Butter Knife,采用 Apt(Annotation Processing Tool) 技术。
apt介绍
APT 大概就是你声明的注解的生命周期为 CLASS,然后继承 AbstractProcessor 类。继承这个类后,在编译的时候,编译器会扫描所有带有你要处理的注解的类,然后再调用 AbstractProcessor 的 process 方法,对注解进行处理,那么我们就可以在处理的时候,动态生成绑定事件或者控件的 java 代码,然后在运行的时候,直接调用 bind 方法完成绑定。通过运行时 annotation 预处理技术实现动态的生成代码。