Android Studio3.0之后gradle.build中dependencie依賴由compile變?yōu)閕mplementation
在com.android.tools.build:gradle 3.0 以下版本依賴在gradle 中的聲明寫法
compile fileTree(dir:'libs', include: ['*.jar'])
1
但在3.0后的寫法為
implementation fileTree(dir:'libs', include: ['*.jar'])或api fileTree(dir:'libs', include: ['*.jar'])
1
2
3
在3.0版本中妖混,compile 指令被標注為過時方法,而新增了兩個依賴指令,一個是implement 和api练俐,這兩個都可以進行依賴添加错沃,但是有什么區(qū)別呢残家?
api 指令
完全等同于compile指令放可,沒區(qū)別铺罢,你將所有的compile改成api卖氨,完全沒有錯会烙。
implement指令
這個指令的特點就是,對于使用了該命令編譯的依賴筒捺,對該項目有依賴的項目將無法訪問到使用該命令編譯的依賴中的任何程序柏腻,也就是將該依賴隱藏在內(nèi)部,而不對外部公開系吭。
文不如圖
這里寫圖片描述
用api指令編譯五嫂,Glide依賴對app Module 是可見的,app Module也可以使用Glide依賴
這里寫圖片描述
用implement指令編譯依賴對app Module 是不可見的肯尺,app Module不可以直接使用Glide
建議
在Google IO 相關話題的中提到了一個建議沃缘,就是依賴首先應該設置為implement的,如果沒有錯则吟,那就用implement槐臀,如果有錯,那么使用api指令氓仲,這樣會使編譯速度有所增快水慨。
參考資料