網上介紹的原理比較多,使用的都比較模糊,我這裏細細說明一下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