AndroidX 简介
AndroidX 是 Android 团队用于在 Jetpack 中开发,测试,打包,版本和发布库的开源项目 。
AndroidX 是对原始 Android Support Library的重大改进 。与支持库一样,AndroidX 与 Android 操作系统分开提供,并提供跨 Android 版本的向后兼容性。AndroidX 通过提供功能奇偶校验和新库完全取代了支持库。此外,AndroidX 还包括以下功能:
AndroidX 中的所有软件包都以字符串开头,位于一致的命名空间中 androidx。支持库包已映射到相应的 androidx.* 包中。有关所有旧类和构建组件的完整映射到新构件。
与支持库不同,AndroidX 软件包是单独维护和更新的。这些 androidx 包使用从版本 1.0.0 开始的严格语义版本控制。开发者可以单独更新项目中的 AndroidX 库。
所有新的支持库开发都将在 AndroidX 库中进行。这包括维护原始支持库组件和引入新的 Jetpack 组件。
使用 AndroidX
如果要在新项目中使用 AndroidX,则需要一下条件:
使用 Android Studio 3.2 及更高版本
将 compileSdkVersion 设置为 28(Android 9.0)或更高版本
将 gradle-wrapper.properties 文件中的 Gradle 版本改为 4.6或更高版本
在 gradle.properties 文件中将以下两个 Android Gradle 插件标志设置 true:android.useAndroidX:设置 true 为时,Android 插件使用相应的 AndroidX 库而不是支持库,默认为 false。
android.enableJetifier:设置 true 为时,Android 插件会自动迁移现有的第三方库,通过重写其二进制文件来使用 AndroidX,默认为 false。
迁移到 AndroidX
AndroidX 将原始支持库 API 包映射到 androidx 命名空间。只有包和 Maven 组件名称发生了变化; 类、方法和字段名称没有改变。
使用 Android Studio 3.2 及更高版本,您可以通过从菜单栏中选择 Refactor> Migrate to AndroidX 快速迁移现有项目以使用 AndroidX 。
如果您有任何尚未迁移到 AndroidX 名称空间的 Maven 依赖项,那么当您将 gradle.properties 文件中以下两个 Android Gradle 插件标志设置 true,Android Studio 构建系统也会为您迁移这些依赖项:
android.useAndroidX=true
android.enableJetifier=true
要迁移不使用任何需要转换的依赖项的第三方库的现有项目,可以将 android.useAndroidX 标志设置为 true,将 android.enableJetifier 标志设置为 false。
组件映射
下表列出了从旧组件到新组件的当前映射,也可以下载CSV格式映射文件:
旧构建组件
AndroidX 构建组件
android.arch.core:common
androidx.arch.core:core-common:2.0.0-rc01
android.arch.core:core
androidx.arch.core:core:2.0.0-rc01
android.arch.core:core-testing
androidx.arch.core:core-testing:2.0.0-rc01
android.arch.core:runtime
androidx.arch.core:core-runtime:2.0.0-rc01
android.arch.lifecycle:common
androidx.lifecycle:lifecycle-common:2.0.0-rc01
android.arch.lifecycle:common-java8
androidx.lifecycle:lifecycle-common-java8:2.0.0-rc01
android.arch.lifecycle:compiler
androidx.lifecycle:lifecycle-compiler:2.0.0-rc01
android.arch.lifecycle:extensions
androidx.lifecycle:lifecycle-extensions:2.0.0-rc01
android.arch.lifecycle:livedata
androidx.lifecycle:lifecycle-livedata:2.0.0-rc01
android.arch.lifecycle:livedata-core
androidx.lifecycle:lifecycle-livedata-core:2.0.0-rc01
android.arch.lifecycle:reactivestreams
androidx.lifecycle:lifecycle-reactivestreams:2.0.0-rc01
android.arch.lifecycle:runtime
androidx.lifecycle:lifecycle-runtime:2.0.0-rc01
android.arch.lifecycle:viewmodel
androidx.lifecycle:lifecycle-viewmodel:2.0.0-rc01
android