zoukankan      html  css  js  c++  java
  • 开源框架相关面试问题-butterknife注解框架面试问题讲解

    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的话那就只能采用反射方式来处理了,那就会影响性能。

  • 相关阅读:
    重构引发的开发思考
    JS-正则表达式
    中文数字转数值
    框架-VuePress(未完)
    HTML-表格
    框架-Vue 2.*的补充
    框架-Vue Class Component tsx 支持(vue-tsx-support V2.2.0)
    CSS-flex
    框架-Vue Class Component 官方支持(vue 2.*、Vue Class Component、vue-property-decorator 9.0.2、vuex-class 0.3.2)
    vue-router:2020-03-26
  • 原文地址:https://www.cnblogs.com/webor2006/p/8998247.html
Copyright © 2011-2022 走看看