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