轉(zhuǎn)載:http://blog.csdn.net/sanjay_f/article/details/50164425
Android Studio 版本更新至 3.0,更新中,連帶著com.android.tools.build:gradle 工具也升級到了3.0.0,在3.0.0中使用了最新的 Gralde 4.0 里程碑版本作為 gradle 的編譯版本,該版本 gradle 編譯速度有所加速,更加欣喜的是,完全支持 Java8。當(dāng)然,對于Kotlin的支持,在這個版本也有所體現(xiàn),Kotlin 插件默認是安裝的。
所以在 Gradle 3.0 以后 依賴的寫法也發(fā)生了改變:compile 指令被標(biāo)注為過時方法,而新增了兩個依賴指令,一個是 implement和 api,這兩個都可以進行依賴添加。
- api
完全等同于compile指令,沒區(qū)別,你將所有的compile改成api,完全沒有錯。
- implement
這個指令的特點就是,對于使用了該命令編譯的依賴,對該項目有依賴的項目將無法訪問到使用該命令編譯的依賴中的任何程序,也就是將該依賴隱藏在內(nèi)部,而不對外部公開。
----- 以上部分為更新內(nèi)容 -----
- Compile
這個最常見,再github看到的那些都是這樣的形式
compile是對所有的build type以及favlors都會參與編譯并且打包到最終的apk文件中。
- Provided
Provided是對所有的build type以及favlors只在編譯時使用,類似eclipse中的external-libs,只參與編譯,不打包到最終apk。(使用 provided 的依賴不能被依賴傳遞)
- APK
只會打包到apk文件中,而不參與編譯,所以不能再代碼中直接調(diào)用jar中的類或方法,否則在編譯時會報錯
- Test compile
Test compile 僅僅是針對單元測試代碼的編譯編譯以及最終打包測試apk時有效,而對正常的debug或者release apk包不起作用。
- Debug compile
Debug compile 僅僅針對debug模式的編譯和最終的debug apk打包。
- Release compile
Release compile 僅僅針對Release 模式的編譯和最終的Release apk打包。