日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Studio3.0中dependencies依赖由compile变为implementation的区别

發布時間:2025/3/18 Android 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Studio3.0中dependencies依赖由compile变为implementation的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

Android Studio版本更新至3.0了,更新后,連帶著com.android.tools.build:gradle 工具也升級到了3.0.0,在3.0.0中使用了最新的Gralde 4.0 里程碑版本作為gradle的編譯版本,該版本gradle編譯速度有所加速,更加令人興奮的是完全支持Java8。當然,對于Kotlin的支持,在這個版本也有所體現,Kotlin插件默認是安裝的。

一、依賴變化

當我們使用Android Studio3.0新建項目時會發現,默認的依賴由之前的compile更改為implementation了。

3.0 以下版本build.gradle中依賴的寫法:

compile fileTree(dir: 'libs', include: ['*.jar'])

?

但在3.0后的寫法為

implementation fileTree(dir: 'libs', include: ['*.jar']) 或 api fileTree(dir: 'libs', include: ['*.jar'])

?

二、區別

在3.0版本中,compile 指令被標注為過時方法,而新增了兩個依賴指令,一個是implementation和api,這兩個都可以進行依賴添加,但是有什么區別呢?

api

完全等同于compile指令,沒區別,你將所有的compile改成api,完全沒有錯。

implementation

這個指令的特點就是,對于使用了該命令編譯的依賴,對該項目有依賴的項目將無法訪問到使用該命令編譯的依賴中的任何程序,也就是將該依賴隱藏在內部,而不對外部公開。

舉個例子:

比如我在一個libiary中使用implementation依賴了gson庫,然后我的主項目依賴了libiary,那么,我的主項目就無法訪問gson庫中的方法。這樣的好處是編譯速度會加快,推薦使用implementation的方式去依賴,如果你需要提供給外部訪問,那么就使用api依賴即可

在Google IO 相關話題的中提到了一個建議,就是依賴首先應該設置為implementation的,如果沒有錯,那就用implementation,如果有錯,那么使用api指令,這樣會使編譯速度增快。

三、說明

下面是2.x版本依賴的說明,括號里對應的是3.0版本的依賴方式。

compile(api)

這種是我們最常用的方式,使用該方式依賴的庫將會參與編譯和打包。

provided(compileOnly)

只在編譯時有效,不會參與打包,可以在自己的moudle中使用該方式依賴。比如com.android.support,gson這些使用者常用的庫,避免沖突。

apk(runtimeOnly)

只在生成apk的時候參與打包,編譯時不會參與,很少用。

testCompile(testImplementation)

testCompile 只在單元測試代碼的編譯以及最終打包測試apk時有效。

debugCompile(debugImplementation)

debugCompile 只在debug模式的編譯和最終的debug apk打包時有效。

releaseCompile(releaseImplementation)

releaseCompile 僅僅針對Release模式的編譯和最終的Release apk打包。

總結

以上是生活随笔為你收集整理的Android Studio3.0中dependencies依赖由compile变为implementation的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。