在Android应用开发中,渠道包(Channel APK)指在各个分发渠道(不同应用商店、运营商、设备类型、地区)下发的有一定差异的定制化版本Apk。
它需要发者在发布应用时,针对不同的地区(中国、美国、欧洲、日本、印度)、厂商(小米、华为、oppo、vivo)、设备类型(手机、平板),运营商(联通、移动、电信)生成不同的应用版本,以满足每个渠道特定需求和策略。
————接下来我们讨论下如何生成渠道包——————
先说结论:渠道包重点是不同分发渠道下产品体验差异,这就是Android构建变体控制productFlavors(产品风味)设计的初衷,所以渠道包的对应了不同的产品风味或者产品风味组合。
到这里建议不了解构建变体(variant)、BuildType、productFlavors(产品风味)、源集等概念的同学,首先快速阅读《Android buildType和productFlavors有何相似和不同》、《5分钟彻底理解Android 源集sourceSet》两篇文章。
接下来开始正式配置渠道包,假设我们做了一个小米设备上的文件互传应用,需要分发的渠道有:小米手机,小米pad、中国、美国。
一、理解和确定产品维度:上面四个分发渠道,我们需要跟产品确认下,他们的产品差异是什么,了解后发现pad和手机是UI适配,中国和美国则是需要不同付费策略和语言,中国:中文+免费+广告,美国:英文+付费使用,于是我们概括下,产品维度是两个 1)设备类型deviceType 2) 地区region
二、定义productFlavors
android {
……
flavorDimensions "deviceType", "region"
productFlavors {
phone {
dimension "deviceType"
}
pad {
dimension "deviceType"
}
cn {
dimension "region"
}
us {
dimension "region"
}
}
……
}
三、构建源集
参考《5分钟彻底理解Android 源集sourceSet》,把每个维度的定制化需求实现放在对应的源集定义中。












网友评论