視頻連接:遷移AndroidX
1.為什么需要遷移到AndroidX
- Support Library 28.0是最后一個(gè)android.support命名空間里的版本朴恳,之后將不再維護(hù),相關(guān)bug修復(fù)以及新功能都會(huì)跟隨AndroidX發(fā)布
- 更好的包管理食寡,標(biāo)準(zhǔn)化的獨(dú)立版本迭代,更好的標(biāo)準(zhǔn)化命名
- 有些其他的代碼庫(kù)已經(jīng)遷移到了AndroidX命名空間,例如Google Play Services、ButterKnife套耕,Mockito 2等
- 新的三方庫(kù)會(huì)隨著androidX推出,例如Jetpack compose峡继、CameraX等,要想用就得遷移到AndroidX
2.如何遷移
遷移前的準(zhǔn)備
- 代碼備份匈挖,以防萬(wàn)一
- 單獨(dú)分支上進(jìn)行碾牌,不要重構(gòu),不要添加新功能
- 由團(tuán)隊(duì)中的幾個(gè)人專門負(fù)責(zé)遷移工作
遷移步驟
- 將Support Library 升級(jí)到28儡循,解決所有API更改問(wèn)題舶吗,并用Support Library28進(jìn)行編譯。因?yàn)镾upport Library28跟AndroidX API都是相同的择膝,僅僅是代碼包名不同誓琼。
- 啟用Jetifier,更改第三方庫(kù)依賴肴捉。Jetifier會(huì)幫助把第三方依賴遷移到AndroidX腹侣,也就是說(shuō)Jetifier會(huì)更改這些依賴的flight代碼,但是它不會(huì)更改你的原代碼齿穗,也不會(huì)遷移你生成的代碼傲隶。
android.useAndroidX = true
android.enableJetifier = true
- 更新第三方依賴,例如ButterKnife窃页、Glide跺株、Mockito 2,SQLDelight等脖卖,確保兼容AndroidX乒省。Jetifier不會(huì)去檢查代碼生成庫(kù),需要自己去檢查是否兼容畦木。
- 使用AS自動(dòng)遷移袖扛。如果不使用AS的話,可以使用腳本遷移馋劈。當(dāng)然攻锰,你也可以選擇手工遷移晾嘶,根據(jù)support包到AndroidX版本的映射,手動(dòng)修改娶吞。