一般我们在制作多渠道的时候通常是针对productFlavors属性的处理。
如何分渠道?
- 针对
build.gradle中的productFlavors属性进行处理。
1 | productFlavors { |
可以看到,分完渠道后,我们可以针对不同的渠道构建不同的icon或者APP名称等,当然这只是在各个渠道区别较少的时候,在各渠道变化较大时就需要分包方式处理了。
如何根据渠道输出不同的apk?(基于Android studio4.1.1)
- 目前来说,渠道定义好了后,在编译打包后,会自动构建相应渠道的文件夹,类似下面的

但是如果没有处理的话,打包出来的apk名称都是一样的 - 各个渠道特定的apk名称
1 | applicationVariants.all { variant -> |
在build.gradle的android节点下创建applicationVariants来输出apkdefaultConfig.versionName对应我们自己定义的versionNamevariant.productFlavors[0].name 对应我们定义的渠道名
尝试过使用{productFlavors.name,但是输出的是带中括号的字符比如[quality],显然不太符合我们的要求。
最后我们输出的apk名称就是类似quality_app_v1.0.28_20210104.apk了。