正在迁移对Android X的支持:各个模块的版本是否一致?

时间:2019-05-04 14:03:13

标签: android migration android-support-library androidx

我正在将一个大型项目迁移到AndroidX。

在我以前的项目中,在顶部build.gradle上,我定义了一个支持库版本的变量,因此30多个子级build.gradle包含所需的支持版本:

ext {
    supportLibraryVersion = "28.0.0"
    buildToolsVersion = "28.0.3"
    googleServicesVersion = "15.0.0"
}

我的问题是,既然我已经运行了Android X重构,我发现依赖项已经转换为Android X名称空间,甚至没有了下的不同包:

    implementation "androidx.appcompat:appcompat:1.0.0'
    implementation "androidx.percentlayout:percentlayout:1.0.0"
    implementation 'androidx.palette:palette:1.0.0'
   implementation 'com.google.android.material:material:1.0.0'

我的问题是,如果现在使用Android X,所有模块版本都已同步,那么这样做就很有意义了:

ext {
    androidXLibraryVersion = "x.x.x"
}

我的猜测是,Android X名称空间之外的模块将具有自己的版本计划,但我什至不确定AndroidX名称空间下的模块将使用通用版本。

你怎么看?

1 个答案:

答案 0 :(得分:1)

在AndroidX世界中,每个组(即,第一个:之前的部分,例如androidx.appcompat)都可以按照AndroidX Overview使用不同的版本:

  

与支持库不同,AndroidX软件包是分别维护和更新的。 androidx软件包从版本1.0.0开始使用严格的Semantic Versioning。您可以在项目中独立更新AndroidX库。

AndroidX releases page上可以看到,它们确实以不同的速率进行升级,但是语义版本控制要求确保了稳定版本的库将继续协同工作。