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
        }
    }

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

  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"

总结

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

上一篇:IDEA grails 3.3.x 项目断点失效问题


下一篇:Docker搭建Jenkins+git+Maven/Gradle——代码自动化运维部署平台(三)