溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AndroidX是什么

發(fā)布時間:2020-07-23 14:40:45 來源:億速云 閱讀:157 作者:小豬 欄目:移動開發(fā)

這篇文章主要為大家展示了AndroidX是什么,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

Android技術(shù)迭代更新很快,各種新出的技術(shù)和名詞也是層出不窮。不知從什么時候開始,總是會時不時聽到AndroidX這個名詞,這難道又是什么新出技術(shù)嗎?相信有很多朋友也會存在這樣的疑惑,那么今天我就來寫一篇科普文章,向大家介紹AndroidX的前世今生。

AndroidX是什么

Android系統(tǒng)在剛剛面世的時候,可能連它的設(shè)計(jì)者也沒有想到它會如此成功,因此也不可能在一開始的時候就將它的API考慮的非常周全。隨著Android系統(tǒng)版本不斷地迭代更新,每個版本中都會加入很多新的API進(jìn)去,但是新增的API在老版系統(tǒng)中并不存在,因此這就出現(xiàn)了一個向下兼容的問題。

舉個例子,當(dāng)Android系統(tǒng)發(fā)布到3.0版本的時候,突然意識到了平板電腦的重要性,因此為了讓Android可以更好地兼容平板,Android團(tuán)隊(duì)在3.0系統(tǒng)(API 11)中加入了Fragment功能。但是Fragment的作用并不只局限于平板,以前的老系統(tǒng)中也想使用這個功能該怎么辦?于是Android團(tuán)隊(duì)推出了一個鼎鼎大名的Android Support Library,用于提供向下兼容的功能。比如我們每個人都熟知的support-v4庫,appcompat-v7庫都是屬于Android Support Library的,這兩個庫相信任何做過Android開發(fā)的人都使用過。

但是可能很多人并沒有考慮過support-v4庫的名字到底是什么意思,這里跟大家解釋一下。4在這里指的是Android API版本號,對應(yīng)的系統(tǒng)版本是1.6。那么support-v4的意思就是這個庫中提供的API會向下兼容到Android 1.6系統(tǒng)。它對應(yīng)的包名如下:

AndroidX是什么

類似地,appcompat-v7指的是將庫中提供的API向下兼容至API 7,也就是Android 2.1系統(tǒng)。它對應(yīng)的包名如下:

AndroidX是什么

可以發(fā)現(xiàn),Android Support Library中提供的庫,它們的包名都是以android.support.*開頭的。

但是慢慢隨著時間的推移,什么1.6、2.1系統(tǒng)早就已經(jīng)被淘汰了,現(xiàn)在Android官方支持的最低系統(tǒng)版本已經(jīng)是4.0.1,對應(yīng)的API版本號是15。support-v4、appcompat-v7庫也不再支持那么久遠(yuǎn)的系統(tǒng)了,但是它們的名字卻一直保留了下來,雖然它們現(xiàn)在的實(shí)際作用已經(jīng)對不上當(dāng)初命名的原因了。

那么很明顯,Android團(tuán)隊(duì)也意識到這種命名已經(jīng)非常不合適了,于是對這些API的架構(gòu)進(jìn)行了一次重新的劃分,推出了AndroidX。因此,AndroidX本質(zhì)上其實(shí)就是對Android Support Library進(jìn)行的一次升級,升級內(nèi)容主要在于以下兩個方面。

第一,包名。之前Android Support Library中的API,它們的包名都是在android.support.*下面的,而AndroidX庫中所有API的包名都變成了在androidx.*下面。這是一個很大的變化,意味著以后凡是android.*包下面的API都是隨著Android操作系統(tǒng)發(fā)布的,而androidx.*包下面的API都是隨著擴(kuò)展庫發(fā)布的,這些API基本不會依賴于操作系統(tǒng)的具體版本。

第二,命名規(guī)則。吸取了之前命名規(guī)則的弊端,AndroidX所有庫的命名規(guī)則里都不會再包含具體操作系統(tǒng)API的版本號了。比如,像appcompat-v7庫,在AndroidX中就變成了appcompat庫。

一個AndroidX完整的依賴庫格式如下所示:

implementation 'androidx.appcompat:appcompat:1.0.2'

了解了AndroidX是什么之后,現(xiàn)在你應(yīng)該放輕松了吧?它其實(shí)并不是什么全新的東西,而是對Android Support Library的一次升級。因此,AndroidX上手起來也沒有任何困難的地方,比如之前你經(jīng)常使用的RecyclerView、ViewPager等等庫,在AndroidX中都會有一個對應(yīng)的版本,只要改一下包名就可以完全無縫使用,用法方面基本上都沒有任何的變化。

但是有一點(diǎn)需要注意,AndroidX和Android Support Library中的庫是非常不建議混合在一起使用的,因?yàn)樗鼈兛赡軙a(chǎn)生很多不兼容的問題。最好的做法是,要么全部使用AndroidX中的庫,要么全部使用Android Support Library中的庫。

而現(xiàn)在Android團(tuán)隊(duì)官方的態(tài)度也很明確,未來都會為AndroidX為主,Android Support Library已經(jīng)不再建議使用,并會慢慢停止維護(hù)。另外,從Android Studio 3.4.2開始,我發(fā)現(xiàn)新建的項(xiàng)目已經(jīng)強(qiáng)制勾選使用AndroidX架構(gòu)了。

AndroidX是什么

那么對于老項(xiàng)目的遷移應(yīng)該怎么辦呢?由于涉及到了包名的改動,如果從Android Support Library升級到AndroidX需要手動去改每一個文件的包名,那可真得要改死了。為此,Android Studio提供了一個一鍵遷移的功能,只需要對著你的項(xiàng)目名右擊 → Refactor → Migrate to AndroidX,就會彈出如下圖所示的窗口。

AndroidX是什么

這里點(diǎn)擊Migrate,Android Studio就會自動檢查你項(xiàng)目中所有使用Android Support Library的地方,并將它們?nèi)扛某葾ndroidX中對應(yīng)的庫。另外Android Studio還會將你原來的項(xiàng)目備份成一個zip文件,這樣即使遷移之后的代碼出現(xiàn)了問題你還可以隨時還原回之前的代碼。

以上就是關(guān)于AndroidX是什么的內(nèi)容,如果你們有學(xué)習(xí)到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI