注解
注解的声明 @interface
元注解
Target
1.Type 用于注解在类
2.Field 变量
3.Method方法
4.parameter 参数
5.constructor 构造器
Retention
1.CLASS 保留在class文件中
2.RUNTION 运行的时候可以通过反射获取
3.SOURCE 只保留在源码中
apt
注解处理器,编译的时候获取注解并且可以生成源码。
annotationProcessor是安卓的注解框架
butterknife
第一步
在编译的时候,通过apt的方式,获取BindView的注解,并且通过javaPoet生成对应的java代码。
第二步
BindView.bind()这个方法是关键,获取当前的类,然后基于类名,创建上一步apt生成的类。最后在apt生成的类中调用findViewById方法。初始化所有标注了bindView注解的view。