Android Studio項(xiàng)目中Gradle依賴的作用是什么?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、晉安網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為晉安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
一、不同類型的library引入方案:
1、本地Module library依賴:
通過這種方式依賴的弊端是每次都需要構(gòu)建module,當(dāng)module比較多時(shí)構(gòu)建非常耗時(shí),建議控制module的依賴數(shù)量,避免構(gòu)建耗時(shí)
//module需要在項(xiàng)目根目錄下的settings.gradle中通過include引入
implementation project(':librarydict')2、本地二進(jìn)制library依賴:jar和aar:
本地的jar和aar需要放在module的libs文件夾下,通過這種方式依賴的弊端是不知道jar和aar的版本號,如果要按照這種方式依賴,建議將jar/aar的名字加上版本信息,方便確認(rèn)版本
依賴jar:
// 可以一條依賴引入libs下所有的jar
implementation fileTree(dir: 'libs', include: ['*.jar'])
// 也可以指定依賴某一個(gè)或幾個(gè)jar
implementation files('libs/dict-v120.jar', 'libs/download-v151.jar')依賴aar:
// 在module的build.gradle中增加如下語句:
repositories {
flatDir {
dirs 'libs'
}
}
// 可以一條依賴引入libs下所有的aar
implementation fileTree(dir: 'libs', include: ['*.aar'])
// 也可以指定依賴某一個(gè)aar
implementation (name: 'library-download', ext: 'aar')3、遠(yuǎn)程二進(jìn)制library依賴:
為了安全起見,建議搭建公司內(nèi)部的私有maven倉庫,統(tǒng)一管理依賴的library,公司內(nèi)部的公共library不要使用公共的maven倉庫。通過這種方式依賴相比于前兩種方案都要更優(yōu),且配置靈活,可以根據(jù)實(shí)際需求調(diào)整
// 依賴明確的版本,標(biāo)明group、name和version implementation group: 'com.android.demo', name: 'library-dict', version: '1.2.0' // 通常按照如下方式簡寫即可 implementation 'com.android.demo:library-dict:1.2.0' // 也可以不指定版本,將version改為"+",當(dāng)遠(yuǎn)程倉庫有更新的版本后,構(gòu)建時(shí)會拉取最新的版本。 // 好處是可以始終依賴最新的library;弊端是有可能library的改動導(dǎo)致編譯不過或者功能變更不 // 穩(wěn)定,因?yàn)槊看味夹枰獧z查是否有最新版本,所以構(gòu)建效率會低一些 implementation 'com.android.demo:library-dict:+'
// 對于有多個(gè)APP,依賴內(nèi)部統(tǒng)一SDK的情況時(shí),可以將gradle文件放在服務(wù)器,遠(yuǎn)程控制統(tǒng)一依 // 賴版本,避免因?yàn)楦鱾€(gè)APP依賴的SDK版本不統(tǒng)一導(dǎo)致很難管理和維護(hù) // 遠(yuǎn)程http://172.28.2.93/remote/library-config.gradle: ext.libraryBuildConfig = [ deps: [ "dict-library" : 'com.android.demo:library-dict:1.2.0', "download-library" : 'com.android.demo:library-download:1.5.1', ] ] // 項(xiàng)目根目錄下的build.gradle全局引入: apply "http://172.28.2.93/remote/library-config.gradle" ext { dependencies = [ "dict-library" : libraryBuildConfig.deps.'dict-library', "download-library" : libraryBuildConfig.deps.'download-library', ] } // 在module的build.gradle中依賴: implementation rootProject.ext.dependencies["dict-library"] implementation rootProject.ext.dependencies["download-library"]
總結(jié)如下:

二、不同依賴配置方式的區(qū)別:compile、implementation、api
從Android Gradle plugin 3.0開始,對于依賴包的配置方式,引入了implementation和api,使用Android Studio新建項(xiàng)目時(shí),原來用compile的地方全部默認(rèn)被替換成了implementation 比如:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support.constraint:constraint-layout:1.1.3'
}變成下面的樣子:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
}網(wǎng)上查資料時(shí),依賴配置方式還有:provided、api、apk、compileOnly、runtimeOnly、渠道名+Compile,差異主要在于構(gòu)建內(nèi)容和參與構(gòu)建的時(shí)機(jī),多樣的配置方式滿足了開發(fā)者的花樣需求,具體區(qū)別如下:
1、implementation:
依賴包中依賴的library只能在依賴包內(nèi)部使用,主工程無法訪問依賴包依賴的library中的類和方法。使用場景:SDK開發(fā)中對第三方library有依賴,希望控制SDK的大小、不想因?yàn)楹退拗鞴こ桃玫耐粋€(gè)依賴包版本不同導(dǎo)致編譯沖突時(shí)特別適合。
因?yàn)楫?dāng)依賴包依賴的library有改動時(shí),只會重新編譯library和依賴包,不需要重新編譯宿主,所以構(gòu)建速度會快一些。
對于各個(gè)渠道還可以單獨(dú)依賴屬于渠道特有的包,通過渠道名+implementation指定,比如debugImplementation、releaseImplementation、testImplementation。
2、api(原compile):
會將依賴包中依賴的其它library一同編譯和打包到apk中,宿主工程可以使用依賴包中依賴的其它library的類和方法
對于各個(gè)渠道還可以單獨(dú)依賴屬于渠道特有的包,通過渠道名+api/compile指定,比如debugApi、releaseApi、testApi
3、compileOnly(provided):
主要是為了方便程序編譯通過的,不會打包到apk中,使用場景:android系統(tǒng)有這個(gè)API,但編譯時(shí)需要引入才能構(gòu)建通過,比如系統(tǒng)的APK依賴framework.jar、gson庫等
4、runtimeOnly(原apk):
只是打包到apk中,不參與編譯,不能在代碼中直接調(diào)用依賴包的代碼,否則會在編譯時(shí)出錯。
關(guān)于Android Studio項(xiàng)目中Gradle依賴的作用是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
文章名稱:AndroidStudio項(xiàng)目中Gradle依賴的作用是什么
分享網(wǎng)址:http://chinadenli.net/article32/goippc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站收錄、面包屑導(dǎo)航、企業(yè)網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)