官方原文如下:
簡單地說就是新的庫可以在不同的android版本上使用。比如之前我們如果使用support為27.1.1的相關依賴庫時。可能需要所有相關的support 庫都為27.1.1。如果其中有bug的話,可能需要所有的都去公升級,存在乙個繫結關係,而且正式版的發布週期也很長。
通過androidx,我們可以看到實時實現的特性和bug修復。公升級個別依賴,不需要對使用的所有其他庫進行更新。這就和我們使用github上的開源庫一樣的,出了問題,我們可以提出bug和意見。作者修復後,發布新版本,我們就可以直接替換使用了。更加的透明便捷。
我選取了幾個常用依賴庫,我們可以看看變化:
old build artifact androidx build artifact1.0.0+com.android.support:multidex androidx.multidex:multidex:
2.0.0+com.android.support:recyclerview-v7 androidx.legacy:legacy-support-v4:1.0.0+com.android.support:viewpager androidx.viewpager:viewpager:
1.0.0+com.android.support:support-fragment androidx.fragment:fragment:1.0.0+
當然涉及的不止這些庫,更詳細的變化內容可以檢視官方文件。
implementation ''
或
implementation ''
可以看到詳細變化。同時我們看到viewpager、swiperefreshlayout、 coordinatorlayout 等一些ui元件被分離了出來,這樣也是便於更好的使用,職責分明,以減輕不使用proguard 或 multidex的應用程式和測試的壓力。
官方部落格中有說道,為了給開發者一定遷移的時間,所以28.0.0的穩定版本還是採用android.support。但是所有後續的功能版本都將採用androidx。
其實對於我們影響也不是很大,我們可以選擇不使用,畢竟不是強制的。但長遠看來還是有好處的。接受變化,擁抱變化也是我們程式猿需要有的精神,歡迎嘗試。
對於有寫一些開源專案的人,可能會有一些影響。比如你有乙個關於recyclerview的拓展庫,那麼你就需要去讓他支援androidx,否則***。
我有去看了一下我們常用的butterknife、glide 等都已經適配了androidx,不得不說真是很良心。
如果乙個乙個去替換當然很麻煩了,所以在android studio 3.2 canary中新增了一鍵遷移的功能refactor -> migrate to androidx。
首先你的gradle版本至少為3.2.0以上,以及compilesdkversion為28以上。
classpath 'com.android.tools.build:gradle:3.2.0+
'
android.useandroidx=trueandroid.enablejetifier=true
如果你想使用androidx,但是之前的不遷移,可以這樣配置:
android.useandroidx=trueandroid.enablejetifier=false
Flutter之AndroidX相關問題
引入一些比較新的第三方庫的時候會出現androidx適配問題,官方解決的鏈結是 大意就是如果你的專案沒有適配androidx,就不用使用那些比較新的庫,否則會出問題。若要公升到androidx,並不是簡單一鍵 migrating to androidx 就行了,還要手動修改老的引用。公升級了一下發現...
Android 相關彙總
1.多個activity,在某個activity中按back鍵退出程式而不回退到其他介面 用乙個單例模式來維護所有的activity,然後攔截back鍵事件,在事件處理中通過單例呼叫各個activity的finish 方法結束各個介面,記得做好相關的service關閉通知,即清理工作。參考 2.介面...
Android 擴充套件庫AndroidX
google 2018 io 大會推出了 android新的擴充套件庫 androidx,用於替換原來的 android擴充套件庫,將原來的 android.替換成androidx.按照官方文件說明 androidx 是對 android.support.包的整理後產物。由於之前的support包過...