Android 使用gradle配置多环境打包

这篇博客详细介绍了如何在Android项目中使用gradle进行多环境打包配置,包括步骤和关键代码,涵盖开发、测试和生产环境。通过设置rootProject.ext变量,管理versionCode、app名称、API域名等,并在BuildConfig中使用这些变量。提供了Build Variants切换环境的方式以及源码链接。
摘要由CSDN通过智能技术生成

Android 使用gradle配置多环境打包,很简单,也很实用。

准备

需要改动的文件:

1.项目根目录下的`build.gradle`文件

2.项目**app**下的`build.gradle`文件

需要使用的文件:

1.项目配置文件`BuildConfig.java`文件

开始
第一步

项目根目录下的build.gradle文件

So esay! 不解释,一看就懂!


// gradle配置项目环境,
// 切换环境方式或打包Apk方式:
//      1.使用Build Variants视图下app的Build Variant选项
//          开发环境(devDebug/devRelease)
//          测试环境(offlineDebug/offlineRelease)
//          生产环境(onlineDebug/onlineRelease)
//      2.gradle命令
ext {
    MINSDK_VERSION = 15//最小支持SDK
    TARGETSDK_VERSION = 25//最大支持SDK
    VERSION_NAME = "1.5.0"//项目版本名称
    ONLINE_NUM = 00//生产环境版本序号(公司内部测试使用)
    TEST_NUM = 05//测试环境版本序号(公司内部测试使用)
    DEV_NUM = 15//开发环境版本序号(公司内部测试使用)
}
//生产环境版本号
def getVersionName() {
    int online_num = rootProject.ext.ONLINE_NUM
    if (online_num > 0) {
        return String.format("%s.%s", rootProject.ext.VERSION_NAME, rootProject.ext.ONLINE_NUM)
    } else {
        return rootProject.ext.VERSION_NAME
    }
}
//测试环境版本号
def getTestVersionName() {
    int test_num = rootProject.ext.TEST_NUM
    if (test_num > 0) {
        return String.format("%s.%s", rootProject.ext.VERSION_NAME, rootProject.ext.TEST_NUM)
    } else {
        return rootProject.ext.VERSION_NAME
    }
}
//开发环境版本号
def getDevVersionName() {
    int dev_num = rootProject.ext.DEV_NUM
    if (dev_num > 0) {
        return String.format("%s.%s", rootProject.ext.VERSION_NAME, rootProject.ext.DEV_NUM)
    } else {
        return rootProject.ext.VERSION_NAME
    }
}
//git提交次数
static int gitVersionCode() {
    def count = "git rev-list HEAD --count".execute().text.trim()
    return count.isInteger() ? count.toInteger() : 0
}

第二步

项目app下的build.gradle文件

重点来了!!!

 defaultConfig {
        applicationId "com.jusenr.gradletest2"
        minSdkVersion rootProject.ext.MINSDK_VERSION
        targetSdkVersion rootProject.ext.TARGETSDK_VERSION
        versionCode rootProject.gitVersionCode()
        versionName rootProject.ext.VERSION_NAME
        resValue "string", "app_name", "GradleTest"
        manifestPlaceholders = [APPLICATION_ID: applicationId,
                                UMENG_APP_KEY : "1234567890",
                                QQ_APP_ID     : "app1的QQ_APP_ID",
                                AMAP_KEY      : "app1的高德地图key"]
        //标记当前环境是否为测试环境(false)
        buildConfigField "boolean", "IS_JUST_TEST", "false"
        //默认API(生产环境)
        buildConfigField "String", "DOMAIN_NAME", "\"http://pic.qiantucdn.com/\""
        buildConfigField 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jusenr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值