android 项目中gradle 的学习

//load keystore.properties
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

 读取keystore.properties文件


signingConfigs {
    release {
        storeFile file(keystoreProperties['testone_path'])
        storePassword keystoreProperties['testone_pwd']
        keyAlias keystoreProperties['testone_key_alias']
        keyPassword keystoreProperties['testone_key_pwd']
        v1SigningEnabled true
        v2SigningEnabled true
    }

    anothersign {
        storeFile file(keystoreProperties['testtwo_path'])
        storePassword keystoreProperties['testtwo_pwd']
        keyAlias keystoreProperties['testtwo_key_alias']
        keyPassword keystoreProperties['testtwo_key_pwd']
        v1SigningEnabled true  //两个签名都选择
        v2SigningEnabled true
    }
}

signingConfigs进行签名  提供了2种签名

buildTypes {
    debug {
        versionNameSuffix "-Debug"
    }

    debugForProduction {
        initWith buildTypes.debug
        versionNameSuffix "-Debug-Production"
    }

    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    staging {
        versionNameSuffix "-Staging"
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

buildTypes声明项目中的几种编译类型 

minifyEnabled :这个是用来开启删除无用代码,比如没有引用到的代码

shrinkResources:用来开启删除无用资源,也就是没有被引用的文件

flavorDimensions "production", "channel"

production :维度

channel:不同市场渠道


productFlavors {
    person {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    tencent {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    huawei {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    xiaomi {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    anzhi {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    uc {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    baidu {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    smartisan {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    flyme {
        dimension "channel"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
    }

    productionone {
        dimension "production"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
        signingConfig signingConfigs.release

    }

    productiontwo {
        dimension "production"
        matchingFallbacks = ["debug", "release", "staging", "debugForProduction"]
        signingConfig signingConfigs.release

    }
}

这样一共生成了72个渠道     2*9*4=72


applicationVariants.all{
    variant->
        def name=variant.name.toLowerCase()

        println(name+"")

        if(name.contains("productionone")){
            if(name.contains("release")){
                println(" productionone release")
            }else{
                println("productionone debug  staging")
            }
        }else{
            if(name.contains("productiontwo")){
                println("productiontwo release")
            }else{
                println("productiontwo debug staging")
            }
        }
}

项目中用到的一些变量可以在这里声明 例如信鸽的ID  ,key等







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值