gradle根据测试环境和正式环境动态配置

一般情况下,android开发在开发过程中会连接测试环境的url;发布的时候会连接正式环境的url;不只是url,各种第三方的appid,appkey等都要区分测试和正式环境。为了方便和避免疏忽造成的问题,我们可以在gradle中动态设置manifestPlaceholders和buildConfigField。

代码中引用根据debug和release引用不用的host配置

首先在根目录下的gralde.properties文件中添加变量,如下:
DEBUG_BASE_URL=http://192.168.0.202:19527/
BASE_URL=http://com.xxx.xxx/
在application目录下的build.gradle文件中的buildTypes下配置release和debug

            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.myConfig
            buildConfigField ("String","BASE_URL","\"${BASE_URL}\"")
            manifestPlaceholders = [app_see_key : "xxxxxxxxxxxxxxxxx"]
        }
        debug {
            signingConfig signingConfigs.myConfig
            //解决包名不能超过6W
            multiDexEnabled true
            buildConfigField ("String","BASE_URL","\"${DEBUG_BASE_URL}\"")
            manifestPlaceholders = [app_see_key : "xxxxxxxxxxxxxxxxx"]
        }

在代码中引用
String HOST = BuildConfig.BASE_URL;

manifest中配置第三方的appid或者appkey

上面的代码中有一行 manifestPlaceholders = [app_see_key : "xxxxxxxxxxxxxxxxx"]
在manifest.xml文件中引用上述配置的变量

你可能感兴趣的:(gradle根据测试环境和正式环境动态配置)