一個(gè)android項(xiàng)目中引用的其他項(xiàng)目或依賴(lài)庫(kù)使用的目是不一樣的痘系。下面是詳細(xì)的說(shuō)明
新配置 | 廢棄的配置 | 行為 |
---|---|---|
implementation |
compile |
添加到編譯路徑中糯笙,同時(shí)包含在輸出(如APK)永票,但是在作為模塊被其他項(xiàng)目引用是仔沿,此依賴(lài)只會(huì)在運(yùn)行時(shí)環(huán)境中依賴(lài)痴鳄,編譯時(shí)不需要柏卤。這樣定義的目的是顯著優(yōu)化編譯速度。比如模塊B依賴(lài)模塊A抖拴,模塊C燎字、D、E依賴(lài)模塊B阿宅,如果模塊B中使用implementation 的方式依賴(lài)A時(shí)候衍,如果A做了修改,那么只會(huì)重新編譯B洒放,而C蛉鹿、D、E模塊都不需要重新編譯往湿。大多數(shù)的應(yīng)用和測(cè)試模塊均應(yīng)使用此配置妖异。 |
api |
compile |
此依賴(lài)和 implementation 類(lèi)似,但間接依賴(lài)此模塊的模塊需要重新編譯领追,如implementation 例子中的C他膳、D、E模塊都需要重新編譯绒窑。 |
compileOnly |
provided |
在編譯路徑中棕孙,但不在輸出中。因此有這樣依賴(lài)的模塊應(yīng)該動(dòng)態(tài)的檢查依賴(lài)的模塊是否存在些膨。這樣的依賴(lài)可以減少最終APK的大小蟀俊。此依賴(lài)不會(huì)向下延伸。 |
runtimeOnly |
apk |
不在編譯路徑中订雾,但包含在輸出中肢预。 |
annotationProcessor |
compile |
注解處理器,有些第三方工具可以處理模塊中的注解葬燎,通過(guò)此配置單獨(dú)制定可以減少掃描處理器的包數(shù)量误甚。 |
以上的說(shuō)明是針對(duì)正常模塊中的,針對(duì)測(cè)試(test)和安卓測(cè)試(androidTest)也有相同的依賴(lài)要求谱净,只需要在配置名稱(chēng)的前面加上對(duì)應(yīng)的前綴窑邦,并將首字母大寫(xiě)即可。