AndroidX是什么

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

在鄱陽(yáng)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站建設(shè)公司,鄱陽(yáng)網(wǎng)站建設(shè)費(fèi)用合理。

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

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)的包名如下:

AndroidX是什么

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

AndroidX是什么

可以發(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)了。

AndroidX是什么

那么對(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ì)彈出如下圖所示的窗口。

AndroidX是什么

這里點(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)于AndroidX是什么的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。

當(dāng)前文章:AndroidX是什么
網(wǎng)頁(yè)URL:http://muchs.cn/article48/ppjjep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站設(shè)計(jì)、企業(yè)建站、App設(shè)計(jì)、企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化