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