对ButterKnife的一些认识

ButterKnife原理总体来说采用了一个重要的技术即APT(Annotation Processing Tool)编译时解析技术,编译的时候通过AbstractProcessor的process方法扫描所有带有注解的java文件,解析之后生成Class$$ViewBiner这样一个类,这个类内部做的事情就是findViewById()和一些监听的事情; 最后我们在运行代码的时候调用ButterKnife.bind(this),这个方法就是最终调用的就是编译时候生成的ViewBinder.bind方法,也就是将findViewById找到的View赋值给我们Activity中要用到的视图变量,或者设置好视图监听回调到Acitity中的onClick方法中。编译解析生成这个ViewBinder类设计的内容较多,技术较复杂,这里代码就不贴出来了。

猜你喜欢

转载自blog.csdn.net/liangtianmeng/article/details/81531078