總是聽(tīng)到有人說(shuō)AndroidX,到底什么是AndroidX
Android技術(shù)迭代更新很快,各種新出的技術(shù)和名詞也是層出不窮。不知從什么時(shí)候開(kāi)始,總是會(huì)時(shí)不時(shí)聽(tīng)到AndroidX這個(gè)名詞,這難道又是什么新出技術(shù)嗎?相信有很多朋友也會(huì)存在這樣的疑惑,那么今天我就來(lái)寫(xiě)一篇科普文章,向大家介紹AndroidX的前世今生。

Android系統(tǒng)在剛剛面世的時(shí)候,可能連它的設(shè)計(jì)者也沒(méi)有想到它會(huì)如此成功,因此也不可能在一開(kāi)始的時(shí)候就將它的API考慮的非常周全。隨著Android系統(tǒng)版本不斷地迭代更新,每個(gè)版本中都會(huì)加入很多新的API進(jìn)去,但是新增的API在老版系統(tǒng)中并不存在,因此這就出現(xiàn)了一個(gè)向下兼容的問(wèn)題。
舉個(gè)例子,當(dāng)Android系統(tǒng)發(fā)布到3.0版本的時(shí)候,突然意識(shí)到了平板電腦的重要性,因此為了讓Android可以更好地兼容平板,Android團(tuán)隊(duì)在3.0系統(tǒng)(API 11)中加入了Fragment功能。但是Fragment的作用并不只局限于平板,以前的老系統(tǒng)中也想使用這個(gè)功能該怎么辦?于是Android團(tuán)隊(duì)推出了一個(gè)鼎鼎大名的Android Support Library,用于提供向下兼容的功能。比如我們每個(gè)人都熟知的support-v4庫(kù),appcompat-v7庫(kù)都是屬于Android Support Library的,這兩個(gè)庫(kù)相信任何做過(guò)Android開(kāi)發(fā)的人都使用過(guò)。
但是可能很多人并沒(méi)有考慮過(guò)support-v4庫(kù)的名字到底是什么意思,這里跟大家解釋一下。4在這里指的是Android API版本號(hào),對(duì)應(yīng)的系統(tǒng)版本是1.6。那么support-v4的意思就是這個(gè)庫(kù)中提供的API會(huì)向下兼容到Android 1.6系統(tǒng)。它對(duì)應(yīng)的包名如下:
類似地,appcompat-v7指的是將庫(kù)中提供的API向下兼容至API 7,也就是Android 2.1系統(tǒng)。它對(duì)應(yīng)的包名如下:
可以發(fā)現(xiàn),Android Support Library中提供的庫(kù),它們的包名都是以android.support.*開(kāi)頭的。
但是慢慢隨著時(shí)間的推移,什么1.6、2.1系統(tǒng)早就已經(jīng)被淘汰了,現(xiàn)在Android官方支持的最低系統(tǒng)版本已經(jīng)是4.0.1,對(duì)應(yīng)的API版本號(hào)是15。support-v4、appcompat-v7庫(kù)也不再支持那么久遠(yuǎn)的系統(tǒng)了,但是它們的名字卻一直保留了下來(lái),雖然它們現(xiàn)在的實(shí)際作用已經(jīng)對(duì)不上當(dāng)初命名的原因了。
那么很明顯,Android團(tuán)隊(duì)也意識(shí)到這種命名已經(jīng)非常不合適了,于是對(duì)這些API的架構(gòu)進(jìn)行了一次重新的劃分,推出了AndroidX。因此,AndroidX本質(zhì)上其實(shí)就是對(duì)Android Support Library進(jìn)行的一次升級(jí),升級(jí)內(nèi)容主要在于以下兩個(gè)方面。
第一,包名。之前Android Support Library中的API,它們的包名都是在android.support.*下面的,而AndroidX庫(kù)中所有API的包名都變成了在androidx.*下面。這是一個(gè)很大的變化,意味著以后凡是android.*包下面的API都是隨著Android操作系統(tǒng)發(fā)布的,而androidx.*包下面的API都是隨著擴(kuò)展庫(kù)發(fā)布的,這些API基本不會(huì)依賴于操作系統(tǒng)的具體版本。
第二,命名規(guī)則。吸取了之前命名規(guī)則的弊端,AndroidX所有庫(kù)的命名規(guī)則里都不會(huì)再包含具體操作系統(tǒng)API的版本號(hào)了。比如,像appcompat-v7庫(kù),在AndroidX中就變成了appcompat庫(kù)。
一個(gè)AndroidX完整的依賴庫(kù)格式如下所示:
implementation 'androidx.appcompat:appcompat:1.0.2'
了解了AndroidX是什么之后,現(xiàn)在你應(yīng)該放輕松了吧?它其實(shí)并不是什么全新的東西,而是對(duì)Android Support Library的一次升級(jí)。因此,AndroidX上手起來(lái)也沒(méi)有任何困難的地方,比如之前你經(jīng)常使用的RecyclerView、ViewPager等等庫(kù),在AndroidX中都會(huì)有一個(gè)對(duì)應(yīng)的版本,只要改一下包名就可以完全無(wú)縫使用,用法方面基本上都沒(méi)有任何的變化。
但是有一點(diǎn)需要注意,AndroidX和Android Support Library中的庫(kù)是非常不建議混合在一起使用的,因?yàn)樗鼈兛赡軙?huì)產(chǎn)生很多不兼容的問(wèn)題。最好的做法是,要么全部使用AndroidX中的庫(kù),要么全部使用Android Support Library中的庫(kù)。
而現(xiàn)在Android團(tuán)隊(duì)官方的態(tài)度也很明確,未來(lái)都會(huì)為AndroidX為主,Android Support Library已經(jīng)不再建議使用,并會(huì)慢慢停止維護(hù)。另外,從Android Studio 3.4.2開(kāi)始,我發(fā)現(xiàn)新建的項(xiàng)目已經(jīng)強(qiáng)制勾選使用AndroidX架構(gòu)了。

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

這里點(diǎn)擊Migrate,Android Studio就會(huì)自動(dòng)檢查你項(xiàng)目中所有使用Android Support Library的地方,并將它們?nèi)扛某葾ndroidX中對(duì)應(yīng)的庫(kù)。另外Android Studio還會(huì)將你原來(lái)的項(xiàng)目備份成一個(gè)zip文件,這樣即使遷移之后的代碼出現(xiàn)了問(wèn)題你還可以隨時(shí)還原回之前的代碼。
到此這篇關(guān)于總是聽(tīng)到有人說(shuō)AndroidX,到底什么是AndroidX的文章就介紹到這了,更多相關(guān)什么是AndroidX內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android開(kāi)發(fā)之DrawerLayout實(shí)現(xiàn)抽屜效果
這篇文章主要介紹了Android開(kāi)發(fā)之DrawerLayout實(shí)現(xiàn)抽屜效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Android打造流暢九宮格抽獎(jiǎng)活動(dòng)效果
抽獎(jiǎng)活動(dòng)有很多種形式,轉(zhuǎn)盤(pán)抽獎(jiǎng),九宮格抽獎(jiǎng),刮刮卡抽獎(jiǎng),這篇文章主要為大家詳細(xì)介紹了如何打造流暢九宮格抽獎(jiǎng)活動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Textvie實(shí)現(xiàn)左邊圖片和換行文字左對(duì)齊的方法
下面小編就為大家分享一篇Textvie實(shí)現(xiàn)左邊圖片和換行文字左對(duì)齊的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android編程實(shí)現(xiàn)自定義Tab選項(xiàng)卡功能示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)自定義Tab選項(xiàng)卡功能,結(jié)合完整實(shí)例形式分析了Android自定義tab選項(xiàng)卡的遍歷、設(shè)置及屬性操作相關(guān)技巧,需要的朋友可以參考下2017-02-02Android開(kāi)發(fā)實(shí)現(xiàn)Files文件讀取解析功能示例
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)Files文件讀取解析功能,結(jié)合實(shí)例形式分析了Android針對(duì)txt文本文件的讀取、保存功能實(shí)現(xiàn)方法與布局操作技巧,需要的朋友可以參考下2017-09-09基于Android-Skin-Loader實(shí)現(xiàn)換膚效果
這篇文章主要為大家詳細(xì)介紹了基于Android-Skin-Loader實(shí)現(xiàn)換膚效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Android優(yōu)化提升應(yīng)用啟動(dòng)速度及Splash頁(yè)面的設(shè)計(jì)
這篇文章主要介紹了Android性能優(yōu)化的一些相關(guān)資料,文章圍繞提升應(yīng)用啟動(dòng)速度及Splash頁(yè)面的設(shè)計(jì)的內(nèi)容展開(kāi)介紹,需要的朋友可以參考一下,希望對(duì)你有所幫助2021-12-12