butterknife
android界大神 JakeWharton 编写
版本8.5.1
ButterKnife.bind(this)需要在setcontentview之后调用
早起的注解框架用的是反射,这种方式在activity运行时大量使用反射会造成卡顿,生成很多临时变量。造成gc
早期的都是Runtime运行时注入的,声明注解的声明周期是runtime,运行时是通过反射完成注入
ButterKnife 采用的APT方式,不是在运行时注入,而是在编译时注入
注解:
普通注解
元注解
自定义注解
自定义注解:
注解处理器是运行在程序的虚拟机上的
核心
拿到所有注解存到map结合中,最后生成java代码。