网上介绍的原理比较多,使用的都比较模糊,我这里细细说明一下java
在写本文这个时候,版本是2.14.1,android
首先引入包:google
compile 'com.google.dagger:dagger:2.14.1' //主要版本 annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'//注解预编译 compile 'com.google.dagger:dagger-android:2.14.1' //android中的特性支持 compile 'com.google.dagger:dagger-android-support:2.14.1' // 若是要兼容之前,好比support的fragment什么的 annotationProcessor 'com.google.dagger:dagger-android-processor:2.14.1'//注解预编译
之前可能都是用apt(我没有用过)第三方,至关于将代码预生成,不使用反射提高效率,而且不须要引入jar包,减小体积。code
可是如今官方的东东来了。那就是annotationProcessor 可是要使用androidstudio新版。我用的是3.0io
下面写一个类编译
@Component() public interface ServiceShop { }
就这样,点击一下运行的锤子class
就生成一个类,就能够使用效率
DaggerServiceShop
来执行相关的操做了。原理
下面介绍一下Dagger2的基本类和基本使用方式fragment