今天,我们来讲一讲ButterKnife注入框架,众所周知,Android开发时,如果我们需要对一个xml中的控件进行使用的话,那么就必须去调用findViewById方法,我说一下我对这个方法的感受,一开始接触android的时候,用的非常爽,在xml中写好控件,在Activity中直接调用这么一个简单的方法就ok了;但是随着开发的一步步加深,一个页面中需要展现的控件越来越多,这就需要我们在页面中不断的去敲重复的代码,这部分代码还封装不了,所以后来就会越用越烦。所以ButterKnife就应运而生;
1.使用方法:
(1)在dependencies中加入这句话,导入butterknife依赖;
compile 'com.jakewharton:butterknife:7.0.1'
(2)在需要的控件上加入需要的注解:
@OnClick(R.id.btn_login) void login(){ }
这就在id为btn_login的控件上加入了点击事件,是不是非常简单
(3)最后,在Activity的onCreate()中调用
ButterKnife.bind(this);
2.实现原理:
讲到ButterKnife的实现原理,就不得不强调一句话,ButterKnife和其他的注入框架是不同的,其他的注入框架基本上都是通过注解+反射的机制去实现的,而ButterKnife不是,它是通过Java注解处理技术在编译时以动态注入的方式去实现,这样做比其他的框架性能会更好;
直接上源码,我们从ButterKnife.bind(this);方法看: