我正在将一个大型项目迁移到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名称空间下的模块将使用通用版本。
你怎么看?
答案 0 :(得分:1)
在AndroidX世界中,每个组(即,第一个:
之前的部分,例如androidx.appcompat
)都可以按照AndroidX Overview使用不同的版本:
与支持库不同,AndroidX软件包是分别维护和更新的。 androidx软件包从版本1.0.0开始使用严格的Semantic Versioning。您可以在项目中独立更新AndroidX库。
在AndroidX releases page上可以看到,它们确实以不同的速率进行升级,但是语义版本控制要求确保了稳定版本的库将继续协同工作。