做物流網(wǎng)站的圖片素材關(guān)鍵詞seo是什么意思
最近升級(jí)了Android Studio版本到Koala Feature Drop | 2024.1.2,新建項(xiàng)目后發(fā)現(xiàn)項(xiàng)目配置又有變化,默認(rèn)開始使用了一個(gè)名叫 Gradle 版本目錄
的東西,當(dāng)然也可以稱之為依賴統(tǒng)一配置管理
,一開始還有點(diǎn)陌生,但是經(jīng)過一番了解之后,發(fā)現(xiàn)其實(shí)看著變化挺大,但總得來說還是比較容易上手,當(dāng)然了之前的配置方式還是可以繼續(xù)使用,但是官方既然推薦,那么還是很有必要學(xué)習(xí)下的,畢竟碼農(nóng)也還是要與時(shí)俱進(jìn)的。
依賴統(tǒng)一配置管理
借助 Gradle 版本目錄,您能夠以可擴(kuò)容的方式添加和維護(hù)依賴項(xiàng)和插件。使用 Gradle 版本目錄,您可以在擁有多個(gè)模塊時(shí)更輕松地管理依賴項(xiàng)和插件。您不必對(duì)各個(gè) build 文件中的依賴項(xiàng)名稱和版本進(jìn)行硬編碼,也不必在每次需要升級(jí)依賴項(xiàng)時(shí)都更新每個(gè)條目,而是可以創(chuàng)建一個(gè)包含依賴項(xiàng)的中央版本目錄,各種模塊可在 Android Studio 協(xié)助下以類型安全的方式引用該目錄。
上面這一段是官方的描述,應(yīng)該都能看明白,Gradle 版本目錄
新項(xiàng)目是通過名為libs.versions.toml
的文件進(jìn)行配置的,因此我們就先從該文件入口一步一步看看是如何配置和使用的。
依賴和插件配置方式
在項(xiàng)目中會(huì)多出來一個(gè)libs.versions.toml的文件,該文件的存放目錄在項(xiàng)目根目錄中的gradle文件夾中,其結(jié)構(gòu)如下:
[versions]
...[libraries]
...[plugins]
...
不難看出內(nèi)容結(jié)構(gòu)分為三個(gè)部分,其作用如下:
[versions]: 定義了項(xiàng)目中使用的依賴項(xiàng)或者插件的版本變量??梢栽诤罄m(xù)代碼塊(libraries 和 plugins 代碼塊)中使用這些變量。
[libraries]: 定義了項(xiàng)目中需要使用的依賴項(xiàng)。(適用于遠(yuǎn)程二進(jìn)制文件或本地庫模塊,貌似是廢話~)。
[plugins]: 定義了項(xiàng)目中需要使用的插件。
接著讓我們來用一個(gè)完整的示例來看它具體是如何配置依賴項(xiàng)和插件的:
[versions]
agp = "8.6.0"
appcompat = "1.6.1"[libraries]
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
這里在[versions]
中配置了兩個(gè)版本號(hào)變量,一個(gè)是名為agp(安卓gradle插件)的版本為8.6.0,另一個(gè)是名為appcompat依賴的版本為1.6.1。
在[libraries]
中完整的配置了名為appcompat的依賴項(xiàng)變量,等號(hào)右邊大括號(hào)中的version.ref則是對(duì)[versions]
配置中的appcompat版本號(hào)的引用,然后group和name則是真實(shí)依賴的信息,完整的配置下來的話,依賴為:“androidx.appcompat:appcompat:1.6.1”。
在[plugins]
中完整的配置了名為android-application的插件變量,等號(hào)右邊大括號(hào)中version.ref則引用了[versions]
中配置的agp版本號(hào),id這里就不再描述了~。
此外,關(guān)于變量命名方式,官方建議使用kebab case方式進(jìn)行命名。
Kebab case(或稱為snake case的全小寫版本)是一種用于編寫變量名、文件名和其他標(biāo)識(shí)符的命名約定。在kebab case中,所有的字母都是小寫的,并且每個(gè)單詞之間用連字符(-)分隔。
說到這里,配置這塊應(yīng)該都有一個(gè)大致的了解了吧,如果還不明白的話,可以這么認(rèn)為,libs.versions.toml
是一個(gè)類,[versions]
是一個(gè)鍵為String,值為String的公有集合;[libraries]
是一個(gè)鍵為String,值為librarie對(duì)象(三個(gè)變量group、name、version)的公有集合;[plugins]
是一個(gè)鍵為String,值為plugin對(duì)象(兩個(gè)變量id、version)的公有集合,就跟我們用java或者kotlin寫代碼是一樣的,這個(gè)類主要是用來通過這些變量和對(duì)象配置我們項(xiàng)目中需要引入的依賴或者插件信息,后續(xù)需要使用的時(shí)候通過這里配置的信息名稱引用即可,可能我這個(gè)描述不不太恰當(dāng),但大致意思應(yīng)該就是這樣。
項(xiàng)目中引用
插件引用
插件引用,通過libs.plugins進(jìn)行配置的插件變量的引用,并將變量名中的下劃線和短劃線轉(zhuǎn)換為圓點(diǎn)。還是以上面的例子繼續(xù),插件的引入方式:
根目錄下的build腳本:
plugins {alias(libs.plugins.android.application) apply false
}
模塊下的build腳本:
plugins {alias(libs.plugins.android.application)
}
依賴引用
在需要添加依賴的模塊中的 build 腳本中添加對(duì)依賴項(xiàng)別名的引用。從 build 腳本引用依賴變量時(shí),需要以libs.開頭進(jìn)行訪問,不需要包含 libraries 限定符,例如:
dependencies {implementation(libs.appcompat)
}
版本號(hào)引用
版本號(hào)引用需要以libs.versions開頭進(jìn)行引用, versions版本號(hào)引用,實(shí)際應(yīng)該極少有使用的場(chǎng)景,其實(shí)跟上面兩個(gè)類似,這里就不再舉例了。
總結(jié)
以上就是本篇文章的全部?jī)?nèi)容。是不是覺得還是比較簡(jiǎn)單的,通過以上內(nèi)容,想必有些同學(xué)也能看出來,使用依賴統(tǒng)一配置確實(shí)好處多多,特別是針對(duì)多module的項(xiàng)目,依賴集中管理、減少重復(fù)、提高可讀性。更重要的是引用簡(jiǎn)單,可以顯著提高依賴管理的可維護(hù)性。