Android buildType和productFlavors

作者: 蚍蜉一生 | 来源:发表于2023-11-07 16:53 被阅读0次

相似点

都叫构建变体,可以通过配置来生成不同的构建,最后生成不同的apk,只是他们的构建变体的区分是基于不同维度。

不同点

从设计目的上看

构建类型(Build Type)

  • 构建类型的设计主要为了区分软件不同阶段的配置需求,比如debug/test/pre/release
  • 构建类型通常关注构建的相关的性质,例如是否启用代码混淆、是否签名应用等,不同签名密钥配置、是否使用资源压缩配置。

产品风味(Product Flavor)

  • 产品风味是为了满足不同市场和用户需求而设计的。
  • 产品风味主要关注应用程序的外观和行为,例如不同的应用 ID、图标、版本号、应用名等,可以给每个命名不同的渠道、变种应用,提供不同的外观和行为配置。

对比来看

  • buildType致力于在不同软件生命周期(debug/test/release)进行构建配置,更多的是通过配置满足开发/测试/发布的效率和安全需求,原则上不同的构建类型对外产品形态呈现是相同的。
  • 产品风味(Product Flavor)致力于为不同用户带来差异化的用户体现,可能这些差异化体现在UI设计/流程/系统版本等

从功能实现上讲

在构建类型(buildType)中可以定义

release {
    versionCode rootProject.ext.versionCode
    debuggable false
    minifyEnabled true
    zipAlignEnabled true
    shrinkResources true
    signingConfig signingConfigs.release
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

}

这些跟构建强相关的配置参数都是不能定义在productFlavor中。

而在productFlavor中

minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName getSdkVersionName()

这些跟具体用户/设备相关的配置则不能定义的buildType中

相关文章

网友评论

    本文标题:Android buildType和productFlavors

    本文链接:https://www.haomeiwen.com/subject/ggjfwdtx.html