前言
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"
第三步,模块中引入配置及变量
- 在 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
}
}
- 在 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}")
- 注意事项:
.java中使用需要使用 buildConfigField 进行配置
注意buildConfigField(“数据类型”,“变量字段”,“gradle.propertles中的值”)
buildConfigField中的数据类型使用标准类型命名 – 如:String
编译后,自动生成在java/包名/BuildConfig.java文件中;
.xml中使用需要使用 resValue 进行配置
resValue(“数据类型”,“变量字段”,“gradle.propertles中的值”)
resValue中使用小写命名 – 如:string
编译后,自动生成在res/values/(generated)中gradleResValues.xml文件中。
第四步,使用
- java文件中使用
BuildConfig.IS_ENABLE_LOG
BuildConfig.HTTP_URL
- xml中使用
在xml中使用,和使用values/strings.xml中变量一个用法:
android:text="@string/wellcomeWords"
总结
使用Android studio对debug、release版本的分别配置就写到这里了,对于老手,这是很简单的一个常规操作,但是对于新手,还需要仔细配置一下,多多验证,以免出错。