国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Dagger2學習筆記之配置

2019-11-09 15:12:21
字體:
來源:轉載
供稿:網友

由來:

Dagger2(匕首),是由Google公司開發的依賴注入框架,之所以稱之為Dagger2,是因為他是基于square開發的dagger的基礎上開發的

作用:

1:增加開發效率(不用頻繁的去寫重復的代碼)

首先new一個實例的過程是一個重復的簡單體力勞動,dagger2完全可以把new一個實例的工作做了,因此我們把主要精力集中在關鍵業務上、同時也能增加開發效率上。省去寫單例的方法,并且也不需要擔心自己寫的單例方法是否線程安全,自己寫的單例是懶漢模式還是餓漢模式。因為dagger2都可以把這些工作做了。

2:更好的管理實例

每個app中的applicationComponent管理整個app的全局類實例,所有的全局類實例都統一交給ApplicationComponent管理,并且它們的生命周期與app的生命周期一樣。每個頁面對應自己的Component,頁面Component管理著自己頁面所依賴的所有類實例。因為Component,Module,整個app的類實例結構變的很清晰。

3:解耦

假如不用dagger2的話,一個類的new代碼是非常可能充斥在app的多個類中的,假如該類的構造函數發生變化,那這些涉及到的類都得進行修改。設計模式中提倡把容易變化的部分封裝起來。

優勢:

Dagger2的原理是在編譯期生成相應的依賴注入代碼。這也是和其他依賴注入框架不同的地方,其他框架是在運行時期反射獲取注解內容,影響了運行效率;

配置:

1 : 在工程的build.gradle文件中添加android-apt插件

buildscript { .... dependencies { classpath 'com.android.tools.build:gradle:2.1.0' // 添加android-apt 插件 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' }}123456789101112123456789101112

android-aptGradle編譯器的插件,根據其官方文檔,主要兩個目的:

編譯時使用該工具,最終打包時不會將該插件打入到apk中。

能夠根據設置的源路徑,在編譯時期生成相應代碼。

2 : 在app的中的build.gradle文件中添加配置apply plugin: 'com.android.application'// 應用插件apply plugin: 'com.neenbedankt.android-apt'android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.mahao.alex.architecture" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false PRoguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' // dagger 2 的配置 compile 'com.google.dagger:dagger:2.4' apt 'com.google.dagger:dagger-compiler:2.4' compile 'org.glassfish:javax.annotation:10.0-b28'// 添加java 注解庫}12345678910111213141516171819202122232425262728293031323334351234567891011121314151617181920212223242526272829303132333435

以上兩個配置就可以了。

dagger是主要的工具類庫。dagger-compiler為編譯時期生成代碼等相關的類庫。在android-apt的文檔中,也推薦使用這種方式。因為,編譯時期生成代碼的類庫在運行期并不需要,那么將其分為兩個庫,(運行類庫dagger)和(編譯器生成代碼類庫(dagger-compiler)),那么在打包時,就不需要將dagger-compiler打入其中(用不到),減小APK 的大小。

以上兩個配置就可以了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高碑店市| 金寨县| 毕节市| 上杭县| 阿城市| 中超| 扶绥县| 伊川县| 泰州市| 长葛市| 华蓥市| 陵水| 杨浦区| 财经| 尚志市| 方正县| 麦盖提县| 富平县| 汶川县| 三河市| 岳普湖县| 军事| 临西县| 济南市| 安乡县| 蓬溪县| 临洮县| 盈江县| 正定县| 舟曲县| 仲巴县| 襄汾县| 乌拉特中旗| 双牌县| 松阳县| 惠水县| 尖扎县| 牟定县| 互助| 宜兰县| 宜兰县|