gradle多渠道构建(11)--渠道发布

版权声明:转载请申明出处,谢谢 https://blog.csdn.net/qq_35495763/article/details/86322197

问题一:为什么会有多渠道打包的情况发生?

背景:发布或者推广 的渠道不同,造成了app会有很到个。为了对不同的渠道做不同的处理。
问题二:解释基本原理
Android gradle 中,定义了有一个Build Variant的概念。(构建变体)
build Variant= buildType+Product Flavor.(确定生成一个包)
buildType:构建类型(举例:release 、debug)
product Flavor :就是构建渠道

实现方式

使用prodductFlavors 方法来添加不同的渠道。(也是一个域对象类型)

android {

  prouductFlavors {
      google{}  //这是一个productFlavor
      baidu{}
   }
}//配置之后,会生成许多Task

productFlavor 的属性

  1. applicationId(包id)
  2. consumerProguardFiles(只应用于库项目中)
    情形说明:
    作用一:发布一个aar 时,consumerProguardFiles 会将配置的文件列表打包到aar中。
    作用二:引用库项目是,启用构建时的混淆会自动启用aar里混淆文件进行混淆。不再需要对aar包进行混淆了。
android {
 productFlavors {
  google {
   consumerProguardFiles 'proguard-rules.pro','proguard-android.txt'
  }
  }
}

dimension 属性

可以简单的理解为是对ProductFlavor 进行分组。
build Variant 中的ProductFlavor拆分成两个维度(x,y)来共同决定一个ProductFlavor;
举例:
在这里插入图片描述
在这里插入图片描述
生成的结果就是:
在这里插入图片描述
总结:

操作步骤

  1. 指定拆分维度(注意维度顺序)
  2. 指定具体每个productFlavor(拆分出来的维度依旧是一个小ProductFlavor) 所属维度
    3.维度的顺序 :高的取代低纬度,低纬度取代默认配置
    如图:第一维替换到第二维的配置
    实质:多个维度指定了同一个值,获取哪个的标准。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35495763/article/details/86322197