开源框架相关面试问题-butterknife注解框架面试问题讲解
2024-09-05 09:21:41
butterknife使用简介:
它的出现主要是为了解决咱们在android开发中会写大量的findViewById()、setOnClickListener()这样的索然无味的代码,其实它就是一个依托Java的注解机制来实现辅助代码生成的框架,下面来看一下它的简单使用:
1、绑定一个View:
相比其它注入框架,一般都是采用反射机制,但是一提到反射就会有性能问题,而butterknife则不一样,它采用编译时再生成的机制来执行view的查找,因为不用太过担心性能问题。
2、给View添加相应的事件:
在最后还得在onCreate()中执行关键的一句代码,如下:
butterknife原理:
在分析它的原理之前,先了解一下Java的注解处理:
也就是在编译期间就已经处理好了各个view的初始化和相应的点击事件,而不是在运行期间去做的,这个是区别于其它的注入框架。
下面从butterknife.bind()方法开始分析其原理:
下面总结一下它的整个过程:
1、开始它会扫描Java代码中所有的bufferknife注解。
2、ButterKnifeProcessor -> <className>$$ViewBinder:通过ButterKnifeProcessor会生成一个新的java类。
3、调用bind方法加载生成的ViewBinder类。
另外还需要注意:
因为如果是private的话那就只能采用反射方式来处理了,那就会影响性能。
最新文章
- centos 6.4 getmail 收取163 邮件
- WPF学习之路(八)页面
- Jackson转换对象为json的时候报java.lang.stackoverflowerror
- 深入浅出话VC++(1)——Windows程序内部运行机制
- iOS设置UISearchBar光标的颜色
- opencv中的图像复制、保存和显示
- Linux/Unix里,ln -s
- iOS开发——UI篇Swift篇&;UISlider
- CentOs Linux 分区建议
- 【转】ArrayList的toArray
- Unity5UGUI 官方教程学习笔记(一)Canvas
- 拓扑排序(Topological)
- 基于java:读写一个英文的txt文件,记录单词个数,并输出十个出现最多的单词及出现的个数;
- Bellman-Ford 求含负权最短路
- 关于bitmap你不知道的一些事
- C语言中的位运算和逻辑运算
- ELK搭建<;三>;:安装Kibana
- 10.1 ES6 的新增特性以及简单语法
- UVa540
- 使用CodeSmith 生成代码