Android Studio在build.gradle定义全局变量,release、debug版本区分

前言

Android App在开发的过程中,也有debug、release版本,对于两个版本同一个参数,不一样的value,则需要单独配置,配置过后,就不需要在发布的时候,因为版本不一样而去修改这些参数。

第一步,项目中新建配置文件

在 Project 目录下,新建配置文件 config.gradle,其内容如下:

ext{
    url = [
            "debug":"https://......",
            "release":"https://......"
    ]
    isEnableLog = [
            "debug": false,
            "release": false
    ]
    wellcomeWords = [
            "debug": "您好,这是测试版",
            "release": "您好,正式版本"
    ]
}

第二步,项目中引入配置文件

在 Project 的 build.gradle 文件中,引入配置文件:

apply from:"config.gradle"

第三步,模块中引入配置及变量

  1. 在 Moudle 的 build.gradle 文件 的 android 项下,新增配置参数signingConfigs ,如下:
signingConfigs {
        release {
//            keyAlias RELEASE_KEY_ALIAS
//            keyPassword RELEASE_KEY_PASSWORD
//            storeFile file('C:/appsign/abc.jks')
//            storePassword RELEASE_KEYSTORE_PASSWORD
        }
        debug {
//            keyAlias RELEASE_KEY_ALIAS
//            keyPassword RELEASE_KEY_PASSWORD
//            storeFile file('C:/appsign/abc.jks')
//            storePassword RELEASE_KEYSTORE_PASSWORD
        }
    }

signingConfigs配图

  1. 在 buildTypes的 release、debug 中,分别引入要使用的变量,如下:
//release中增加配置
signingConfig signingConfigs.release
buildConfigField "Boolean", "IS_ENABLE_LOG", "${isEnableLog.release}"
buildConfigField("String", "HTTP_URL", "\"${url.release}\"")
resValue("string", "wellcomeWords", "${wellcomeWords.release}")
//debug中增加配置
signingConfig signingConfigs.debug
buildConfigField "Boolean", "IS_ENABLE_LOG", "${isEnableLog.debug}"
buildConfigField("String", "HTTP_URL", "\"${url.release}\"")
resValue("string", "wellcomeWords", "${wellcomeWords.debug}")
  1. 注意事项:

.java中使用需要使用 buildConfigField 进行配置

注意buildConfigField(“数据类型”,“变量字段”,“gradle.propertles中的值”)
buildConfigField中的数据类型使用标准类型命名 – 如:String
编译后,自动生成在java/包名/BuildConfig.java文件中;

.xml中使用需要使用 resValue 进行配置

resValue(“数据类型”,“变量字段”,“gradle.propertles中的值”)
resValue中使用小写命名 – 如:string
编译后,自动生成在res/values/(generated)中gradleResValues.xml文件中。

第四步,使用

  1. java文件中使用
BuildConfig.IS_ENABLE_LOG
BuildConfig.HTTP_URL
  1. xml中使用
    在xml中使用,和使用values/strings.xml中变量一个用法:
android:text="@string/wellcomeWords"

第五步,扩展

经过第四步的使用之后,那么strings.xml是不是也可以分为debug版本和release版本,答案是的;直接在 buildTypes 下,增加strings.xml的版本区分:

// release下增加
applicationIdSuffix ".release"
resValue "string", "app_name", "@string/app_name_release"

// release下增加
applicationIdSuffix ".debug"
resValue "string", "app_name", "@string/app_name_debug"

总结

使用Android studio对debug、release版本的分别配置就写到这里了,对于老手,这是很简单的一个常规操作,但是对于新手,还需要仔细配置一下,多多验证,以免出错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值