在看本文之前建议先了解下《源集理解》《buildType和productFlavors相同和差异》《渠道包基础认知》。
在《源集理解》一文中有介绍,代码,资源、配置文件、jniLib怎么做好配置和区分,那么有同学问,libs下面的包呢?
首先 ,如果所有渠道包对应的构建变体都使用相同的lib库(jar包或者aar),那就无需做这个lib库的配置;如果有不同,则需要我们进行lib库在不同构建变上(大多数情况只需要在风味维度上做配置,这个原因可以留做一个思考题)的配置,一半有两种常见的方案:
一、根据不同的风味使用不同的依赖lib地址
假设定义的产品风味有:
flavorDimensions "so"
productFlavors {
so64 {
dimension "so"
}
so32 {
dimension "so"
}
}
对应依赖配置:
dependencies {
so32Api fileTree(include: ['*.jar', '*.aar'], dir: 'libs/so32')
api fileTree(include: ['*.jar', '*.aar'], dir: 'libs/so64
}
lib对应存放配置:
二、不同的风味包引用不同名称的lib库
假设定义的产品风味有:
flavorDimensions "so"
productFlavors {
so64 {
dimension "so"
}
so32 {
dimension "so"
}
}
对应依赖配置:
dependencies {
so32Implementation(name:jiami-sdk-32, ext: 'jar')
implementation(name:jiami-sdk-64, ext: 'jar')
}
libs目录展示:
除了这两种方案,您还有什么方案么?继续学习gradle 构建,方案还有很多。