Chapter4:Android开发中使用Gradle创建构建Variant

本文详细介绍了Android开发中使用Gradle创建构建Variant,包括构建类型、product flavor和构建variant的概念及应用。构建类型定义了应用的构建方式,如minifyEnabled参数,可以自定义构建类型。product flavor用于创建不同版本,如免费版和付费版,可以结合构建类型形成不同的variant。每个variant都有自己的源集和依赖,并可以通过assemble任务创建对应的APK。此外,还讨论了签名配置和variant过滤器的重要性。
摘要由CSDN通过智能技术生成

Chapter4:创建构建Variant

  • Variant 英文翻译:变体。

4.1 构建类型

  • 在Gradle的Android插件中,构建类型用来定义如何构建一个应用或依赖库。可以在 buildTypes代码块 中定义:

    android {
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    

    minifyEnabled :清除无用资源。

  • 创建构建类型:除了debug/release构建类型外,可以自定义构建类型,只需要在 buildTypes代码块 中新增一个类似debug/release的对象即可。

    android {
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
            staging{
                applicationIdSuffix ".staging"
                versionNameSuffix "-staging"
            }
        }
    }
    
    

    自定义构建类型staging定义了一个新的applicationId后缀,表示相同设备可以同时安装release版本和staging版本。版本名也添加了新的后缀,用于在同一设备上区分多个应用版本。

    //另一种创建方式,复制一个已存在的构建类型并在其基础上覆写或定义额外属性。
    staging.initWith(buildTypes.release)
    staging{
    applicationIdSuffix ".staging"
    versionNameSuffix "-staging"
    }
    
  • 源集:**一个源集(sorce set)就是一组源文件,他们会被一起执行和编译。**当创建一个新的构建类型时,Gradle会创建一个新的源集。

    标准源集结构

    在Android Studio中需要手动创建源集的目录。

Android创建源集1

Android创建源集2

  • 源集使得我们可以针对特定的构建类型覆写某些属性,为某些构建类型添加自定义代码,以及为不同的构建类型添加自定义布局或字符串。

  • 注意:添加Java类到构建类型时时互相排斥的。比如添加了example.java到staging源集,可以往debug和release源集中加入example.java,但是不能添加example.java到main源集。

  • 使用不同源集时,资源文件会被特殊处理。Drawables 和 layout 文件将完全覆盖在 main 源集中有相同名称的资源;values文件夹中的文件不会被覆盖,而是整合到main资源中,同一子属性会被非main源集中的替代。

    <!--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值