在Google I/O 2018上,Android團隊宣佈了AndroidX。android
AndroidX 是對 android.support.* 包的整理後產物。因爲以前的 support 包過於混亂,因此,Google 推出了AndroidX。eclipse
所以,AndroidX本質上其實就是對Android Support Library進行的一次升級。測試
自support v7:28開始,大部分support包都會遷移到androidx下。gradle
若是在低版本Android平臺上開發一個應用程序,而應用程序又想使用高版本才擁有的功能,就須要使用Support庫。操作系統
Android Support v4: 這個包是爲了照顧1.6及更高版本而設計的,這個包是使用最普遍的,eclipse新建工程時,都默認帶有了。插件
Android Support v7: 這個包是爲了考慮照顧2.1及以上版本而設計的,但不包含更低,故若是不考慮1.6,咱們能夠採用再加上這個包,另外注意,v7是要依賴v4這個包的,即:兩個得同時被包含。設計
Android Support v13 : 這個包的設計是爲了android 3.2及更高版本的,通常咱們都不經常使用,平板開發中能用到。版本控制
AndroidX 是 Android 團隊用於在 Jetpack 中開發、測試、打包和發佈庫以及對其進行版本控制的開源項目。code
AndroidX 對原始 Android 支持庫進行了重大改進。與支持庫同樣,AndroidX 與 Android 操做系統分開提供,並與各個 Android 版本向後兼容。AndroidX 徹底取代了支持庫,不只提供同等的功能,並且提供了新的庫。此外,AndroidX 還包括如下功能:cdn
AndroidX 中的全部軟件包都使用一致的命名空間,以字符串 androidx 開頭。支持庫軟件包已映射到對應的 androidx.* 軟件包。有關全部舊類到新類以及舊編譯工件到新編譯工件的完整映射,請參閱軟件包重構頁面。
與支持庫不一樣,AndroidX 軟件包會單獨維護和更新。androidx 軟件包使用嚴格的語義版本控制,從版本 1.0.0 開始。您能夠單獨更新項目中的 AndroidX 庫。
全部新支持庫的開發工做都將在 AndroidX 庫中進行。這包括維護原始支持庫工件和引入新的 Jetpack 組件。
若是要在新項目中使用 AndroidX,則須要將編譯 SDK 設置爲 Android 9.0(API 級別 28)或更高版本,並在 gradle.properties 文件中將如下兩個 Android Gradle 插件標記設置爲 true。
android.useAndroidX
:若是設置爲 true,Android 插件會使用相應的 AndroidX 庫,而非支持庫。若是未指定,則該標記默認爲 false。 android.enableJetifier
:若是設置爲 true,Android 插件會重寫其二進制文件,自動遷移現有的第三方庫以使用 AndroidX。若是未指定,則該標記默認爲 false。
AndroidX 會將原始支持庫 API 軟件包映射到 androidx 命名空間。只有軟件包和 Maven 工件名稱發生了變化;類、方法和字段名稱沒有改變。
藉助 Android Studio 3.2 及更高版本,您能夠經過從菜單欄中依次選擇Refactor > Migrate to AndroidX
,快速遷移現有項目以使用 AndroidX。
若是您有任何還沒有遷移至 AndroidX 命名空間的 Maven 依賴項,那麼當您在gradle.properties
文件中將如下兩個標記設置爲 true 時,Android Studio 編譯系統也會爲您遷移這些依賴項:
android.useAndroidX=true
android.enableJetifier=true
要遷移未使用任何第三方庫但帶有須要轉換的依賴項的現有項目,能夠將 android.useAndroidX 標記設置爲 true,並將 android.enableJetifier 標記設置爲 false。