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

  • 相关阅读:
    栈(代码分解)
    线性表(代码分解)
    绪论简概
    1006 Sign In and Sign Out (25 分)
    1005 Spell It Right (20 分)
    分支界限法解决0/1背包问题
    Sequence( 分块+矩阵快速幂 )
    Shape Number (最小表示法)
    Age of Moyu (2018 Multi-University Training Contest 7)
    [Cqoi2014]危桥 (两遍网络流)
  • 原文地址:https://www.cnblogs.com/webor2006/p/8998247.html
Copyright © 2011-2022 走看看