欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

總是聽(tīng)到有人說(shuō)AndroidX,到底什么是AndroidX

 更新時(shí)間:2020年05月19日 11:12:49   作者:guolin  
這篇文章主要介紹了總是聽(tīng)到有人說(shuō)AndroidX,到底什么是AndroidX,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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)文章

最新評(píng)論