天天看點

Gradle依賴詳解——不同依賴配置方式的差別

從Android Gradle plugin 3.0開始,對于依賴包的配置方式,引入了implementation和api,使用Android Studio建立項目時,原來用compile的地方全部預設被替換成了implementation。

依賴配置方式還有:provided、api、apk、compileOnly、runtimeOnly、管道名+Compile,差異主要在于建構内容和參與建構的時機,多樣的配置方式滿足了開發者的花樣需求,具體差別如下:

1、implementation

依賴包中依賴的library隻能在依賴包内部使用,主工程無法通路依賴包依賴的library中的類和方法。

對于各個管道還可以單獨依賴屬于管道特有的包,通過管道名+implementation指定,比如debugImplementation、releaseImplementation、testImplementation。

2、api(原compile):

會将依賴包中依賴的其他library一同編譯和打包到apk中,宿主工程可以使用依賴包依賴的其他類和方法。

對于各個管道還可以單獨依賴屬于管道特有的包,通過管道名+api/compile指定,比如debugApi、releaseApi、testApi

3、compileOnly(provided)

主要是為了友善程式編譯通過的,不會打包到apk中,使用場景:android系統有這個API,但編譯時需要引入才能建構通過,比如系統的APK依賴framework.jar、gson庫等

4、runtimeOnly(原apk)

隻是打包到apk中,不參與編譯,不能在代碼中直接調用依賴包的代碼,否則會在編譯時出錯。一般很少使用

繼續閱讀