Android技術(shù)棧(一)AndroidX

AndroidX是什么?

? ? ? ? 簡單來講AndroidX就是一個與平臺解綁的Appcompat(低版本兼容高版本功能)庫碎赢,也就是說在build.gradle中不需要再與compileSdkVersion寫成一樣,例如之前這樣的寫法:

compile 'com.android.support:appcompat-v7:24.+'

? ? ? ? (注:使用24.+則表明使用 24. 開頭的版本的最新版本薛夜,若直接使用+號則表明直接使用該庫的最新版本籍茧。

? ? ? ? 現(xiàn)在可以寫成:

implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'

? ? ? ? (注:implementation與compile功能相同,但是implementation無法在該模塊內(nèi)引用依賴的依賴却邓,但compile可以硕糊,這么做的好處是可以加快編譯速度。新的api與compile完全相同腊徙,只是換了名字而已)

? ? ? ? 也就是說简十,在更換compileSdkVersion的時候不需要再去修改項(xiàng)目中的文件了,而且Google在appcompat庫28.0.0第一個正式版本發(fā)布之后撬腾,已經(jīng)不再更新原有的appcompat庫螟蝙,而是全面轉(zhuǎn)到整合開發(fā)AndroidX的任務(wù)上,這就意味著沒如果還使用原有的appcompat庫民傻,如果胰默,庫中的代碼出現(xiàn)了問題,Google將不會修復(fù)它漓踢,所以遷移到AndroidX是遲早的事情牵署。

遷移到AndroidX

? ? ? ? 在Android Studio中的Refactor->Migrate to AndroidX的選項(xiàng),點(diǎn)擊之后即可將項(xiàng)目遷移到AndroidX喧半,在確認(rèn)的時候他會提示你將項(xiàng)目備份以免遷移失敗時丟失原有項(xiàng)目奴迅,但是通常情況下不會遷移失敗,只是遷移的過程會花費(fèi)很長的時間(如果項(xiàng)目很大挺据,真的挺久取具,AS的CPU利用率為0也不要關(guān)閉,請耐心等待)扁耐。

? ? ? ? 如果發(fā)生遷移失敗暇检,一般可能是原有工具Hook了appcompat庫造成的,這時候就需要手動遷移了婉称。

? ? ? ? 此外块仆,值得注意的是,AndroidX的更新頻率會比原來的appcompat庫要高王暗,會經(jīng)常改變底層實(shí)現(xiàn)榨乎,所以需要Hook appcompat庫的插件可能會出現(xiàn)一些問題,還有就是使用gradle依賴的一些第三方庫中的某些類可能繼承了android.support.v4包下的Fragment瘫筐,但遷移到AndroidX后appcompat的Fragment變成了androidx.fragment.app包下,原有的代碼下會畫紅線铐姚,AS也會警告你出現(xiàn)錯誤策肝,但是不用擔(dān)心肛捍,依然可以正常編譯,AS在編譯的時候會自動完成基類的替換之众,但前提是你要確保你的gradle.properties進(jìn)行了如下設(shè)置拙毫。

android.useAndroidX=true

android.enableJetifier=true

? ? ? ? 你甚至可以直接新的Fragment使用這種方式強(qiáng)制轉(zhuǎn)換到原有的Fragment上,編譯時亦不會報(bào)錯

TextureSupportMapFragment mapFragment ? ? ? ? = TextureSupportMapFragment.class ? ? ? ? .cast(getChildFragmentManager() ? ? ? ? ? ? ? ? .findFragmentById(R.id.map_view));

? ? ? ? 同理棺禾,也可以將舊的Fragment強(qiáng)制類型轉(zhuǎn)換到新的Fragment上

Fragment f = Fragment.class.cast(mapFragment);

? ? ? ? (注:上面的TextureSupportMapFragment是一個典型案例缀蹄,他是高德地圖SDK中的Fragment,本身已經(jīng)繼承了v4.包下的Fragment膘婶,可以用過上面的轉(zhuǎn)換來使他兼容AndroidX)

? ? ? ? 雖然更新到AndroidX會出各種小問題缺前,但面相未來開發(fā),總體來說還是是利大于弊的悬襟。

? ? ? ? 如果你在查找一份AndroidX遷移前后庫與類的對照清單衅码,我想你可能需要這個AndroidX遷移

遷移到AndroidX的好處

? ? ? ? 1.Fragment終于能用了脊岳,以前Fragment的各種小問題逝段,在AndroidX中基本都得到了解決。

? ? ? ? 2.AppCompatActivity的addOnBackPressedCallback方法割捅。曾經(jīng)很多人一直都詬病為什么Fragment不支持onBackPressed奶躯,簡直蛋疼,更新到AndroidX以后亿驾,你可以AppCompatActivity#addOnBackPressedCallback為Fragment添加類似于onBackPressed的功能嘹黔。

? ? ? ? 3.其他一些新庫的支持。但是由于庫太多颊乘,大家可以自己去AndroidX Google 官方Git倉庫查看参淹。

? ? ? ? 4.AndroidX是Jetpack組件包的基礎(chǔ),如果要想使用Jetpack組件包的所有功能乏悄,還是比較建議遷移到AndroidX的浙值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市檩小,隨后出現(xiàn)的幾起案子开呐,更是在濱河造成了極大的恐慌,老刑警劉巖规求,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筐付,死亡現(xiàn)場離奇詭異,居然都是意外死亡阻肿,警方通過查閱死者的電腦和手機(jī)瓦戚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丛塌,“玉大人较解,你說我怎么就攤上這事畜疾。” “怎么了印衔?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵啡捶,是天一觀的道長。 經(jīng)常有香客問我奸焙,道長瞎暑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任与帆,我火速辦了婚禮了赌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鲤桥。我一直安慰自己揍拆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布茶凳。 她就那樣靜靜地躺著嫂拴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贮喧。 梳的紋絲不亂的頭發(fā)上筒狠,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機(jī)與錄音箱沦,去河邊找鬼辩恼。 笑死,一個胖子當(dāng)著我的面吹牛谓形,可吹牛的內(nèi)容都是我干的灶伊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寒跳,長吁一口氣:“原來是場噩夢啊……” “哼聘萨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起童太,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤米辐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后书释,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翘贮,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年爆惧,在試婚紗的時候發(fā)現(xiàn)自己被綠了狸页。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扯再,死狀恐怖芍耘,靈堂內(nèi)的尸體忽然破棺而出腹侣,到底是詐尸還是另有隱情,我是刑警寧澤齿穗,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站饺律,受9級特大地震影響窃页,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜复濒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一脖卖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巧颈,春花似錦畦木、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唇礁,卻和暖如春勾栗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盏筐。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工围俘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人琢融。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓界牡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親漾抬。 傳聞我的和親對象是個殘疾皇子宿亡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容