下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多關(guān)節(jié)機(jī)械臂技術(shù)
- 福利政策與性別平等
- 2024版重慶物業(yè)管理服務(wù)合同范本
- 2024版中外合作經(jīng)營合同
- 2024版浙江省淀粉保護(hù)價(jià)收購合同書
- 2024版武漢市農(nóng)副產(chǎn)品購銷結(jié)合合同
- 四川省瀘州市瀘縣第五中學(xué)2024-2025學(xué)年高一上學(xué)期10月月考語文試題答案
- 小學(xué)四年級(jí)數(shù)學(xué)三位數(shù)除以兩位數(shù)同步作業(yè)題大全附答案
- 舉一反三系列高考高中數(shù)學(xué)同步及復(fù)習(xí)資料人教A版必修1專題4.7 對(duì)數(shù)函數(shù)-重難點(diǎn)題型精講(含答案及解析)
- 2025屆新教材高考物理一輪復(fù)習(xí)單元質(zhì)檢十三熱學(xué)含解析新人教版
- 臨床試驗(yàn)生物樣本轉(zhuǎn)運(yùn)的標(biāo)準(zhǔn)操作規(guī)程
- 一年級(jí)10以內(nèi)加減法口算題(100道題_可直接打印)-10以內(nèi)加減口算題
- 單殼油船油樣品取樣送檢程序規(guī)定
- 福建省廈門市同安區(qū)三校七年級(jí)地理上學(xué)期期中聯(lián)考試題新人教版
- 有限空間作業(yè)安全指導(dǎo)手冊(cè)及學(xué)習(xí)內(nèi)容
- 上氣道咳嗽綜合征中醫(yī)診治指南.
- 《論六家要旨》原文與翻譯
- 營銷總監(jiān)績效考核表(完整版)
- 灌漿平洞專項(xiàng)施工方案(完整版)
- 房屋修繕工程施工方案(完整版)
- 我國主要山脈高原盆地平原
評(píng)論
0/150
提交評(píng)論