butterknife

android界大神 JakeWharton 编写

版本8.5.1

ButterKnife.bind(this)需要在setcontentview之后调用

早起的注解框架用的是反射,这种方式在activity运行时大量使用反射会造成卡顿,生成很多临时变量。造成gc

早期的都是Runtime运行时注入的,声明注解的声明周期是runtime,运行时是通过反射完成注入

 

ButterKnife 采用的APT方式,不是在运行时注入,而是在编译时注入

 

注解:

普通注解

元注解

自定义注解

butterknife

butterknife

自定义注解:

butterknife

 

butterknife

 butterknife

butterknife

butterknife

注解处理器是运行在程序的虚拟机上的

butterknife

butterknife

 

核心

butterknife

 

butterknife

butterknife

butterknife

拿到所有注解存到map结合中,最后生成java代码。