Butterknife其实并不是网络框架,博客命名为网络框架其实是为了统一分类,可以统一认为是开源网络框架
1 Butterknife使用简介
其实就是一个依托Java的注解机制来实现辅助代码生成的框架
- 绑定一个view
- 给一个View添加点击事件
- 给多个View添加点击事件
- 给ListView setItemClickListener
2 Butterknife原理
-
开始它会扫描Java代码中所有的Butterknife注解
-
ButterKnifeProcessor ->< className> $$ViewBinder
-
调用bind方法加载生成的ViewBinder类
下面这个博客写的特别好,总结的很全面
ButterKnife 原理解析
ButterKnife 整个过程是在项目编译阶段完成的,主要用到了 annotationProcessor 和 JavaPoet 技术,使用时通过生成的辅助类完成操作,并不是在项目运行时通过注解加反射实现的,所以并不会影响项目运行时的性能,可能仅在项目编译时有略微的影响。