為了以后查看方便,特在此記錄,參考文章:https://blog.csdn.net/yuzhiqiang_1993/article/details/78366985?locationNum=6&fps=1
2.x 和 3.X版本依賴方式的比較:
替代關(guān)系:
compile依賴關(guān)系已被棄用,被implementation和api替代;
provided被compile only替代;
apk被runtime only替代;
api:跟2.x版本的 compile完全相同。
implementation和api區(qū)別:
implementation:只能在內(nèi)部使用此模塊,比如我在一個libiary中使用implementation依賴了gson庫,然后我的主項目依賴了libiary,那么,我的主項目就無法訪問gson庫中的方法。這樣的好處是編譯速度會加快,推薦使用implementation的方式去依賴,如果你需要提供給外部訪問,那么就使用api依賴即可
provided(compileOnly)作用:
只在編譯時有效,不會參與打包
可以在自己的moudle中使用該方式依賴一些比如com.android.support,gson這些使用者常用的庫,避免沖突。
apk(runtimeOnly)作用:
只在生成apk的時候參與打包,編譯時不會參與,很少用。
testCompile(testImplementation)作用:
testCompile 只在單元測試代碼的編譯以及最終打包測試apk時有效。
debugCompile(debugImplementation)作用:
debugCompile 只在debug模式的編譯和最終的debug apk打包時有效
releaseCompile(releaseImplementation)作用:
Release compile 僅僅針對Release 模式的編譯和最終的Release apk打包。