【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android Studio項(xiàng)目中Gradle依賴的作用是什么_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android Studio項(xiàng)目中Gradle依賴的作用是什么_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android Studio項(xiàng)目中Gradle依賴的作用是什么_第3頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android Studio項(xiàng)目中Gradle依賴的作用是什么_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】AndroidStudio項(xiàng)目中Gradle依賴的作用是什么

AndroidStudio項(xiàng)目中Gradle依賴的作用是什么?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。一、不同類型的library引入方案:1、本地Modulelibrary依賴:通過這種方式依賴的弊端是每次都需要構(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的版本號(hào),如果要按照這種方式依賴,建議將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í)會(huì)拉取最新的版本。

//

好處是可以始終依賴最新的library;弊端是有可能library的改動(dòng)導(dǎo)致編譯不過或者功能變更不

//

穩(wěn)定,因?yàn)槊看味夹枰獧z查是否有最新版本,所以構(gòu)建效率會(huì)低一些

implementation

'com.android.demo:library-dict:+'//

對(duì)于有多個(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)程3/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

"3/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從AndroidGradleplugin3.0開始,對(duì)于依賴包的配置方式,引入了implementation和api,使用AndroidStudio新建項(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ā)中對(duì)第三方library有依賴,希望控制SDK的大小、不想因?yàn)楹退拗鞴こ桃玫耐粋€(gè)依賴包版本不同導(dǎo)致編譯沖突時(shí)特別適合。因?yàn)楫?dāng)依賴包依賴的library有改動(dòng)時(shí),只會(huì)重新編譯library和依賴包,不需要重新編譯宿主,所以構(gòu)建速度會(huì)快一些。對(duì)于各個(gè)渠道還可以單獨(dú)依賴屬于渠道特有的包,通過渠道名+implementation指定,比如debugImplementation、releaseImplementation、testImplementation。2、api(原compile):會(huì)將依賴包中依賴的其它library一同編譯和打包到apk中,宿主工程可以使用依賴包中依賴的其它library的類和方法對(duì)于各個(gè)渠道還可以單獨(dú)依賴屬于渠道特有的包,通過渠道名+api/compile指定,比如debugApi、releaseApi、testApi3、compileOnl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論