构建配置文件(config.gradle)以及妙用buildConfigField
构建配置文件(config.gradle)
1、新建config.gradle
在project的根目录下新建文件config.gradle,跟settings.gradle同级,然后在config.gradle写配置代码,eg:
ext{
//Android基本配置
android=[
compileSdkVersion:28,
minSdkVersion:21,
targetSdkVersion:28,
versionCode:1,
versionName:"1.0.0"
]
}
2、在app的build.gradle中配置配置信息
def androidConfig =rootProject.ext.android
android {
compileSdkVersion androidConfig.compileSdkVersion
defaultConfig {
applicationId androidConfig.applicationId
minSdkVersion androidConfig.minSdkVersion
targetSdkVersion androidConfig.targetSdkVersion
versionCode androidConfig.versionCode
versionName androidConfig.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
3、在project的build.gradle中写上
apply from: "config.gradle"
妙用buildConfigField
说BuildConfig类之前,先谈谈通常会遇到的场景:
1.Log打印日志这个需求,通常大家都会写一个LogUtils工具类,暴露一些常用的log.e log.d log.i等方法, 在方法会用到一个静态常量去作为开关。
2.Api接口地址的变换这个需求,通常都是写一个类里面放上一个静态常量表示Api的地址,然后我们是需要debug模式运行时采用测试环境Api接口地址,在打release包上线时则切换为生产环境的Api接口地址。
3.配置一些第三方平台的固定参数,比如微信、QQ、微博的AppKey、AppSecret。
…
其实咱们就能利用build插件gradle自动生成的BuildConfig类来解决这些问题,可以省去很多工作量,eg:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField "Boolean","ISRELEASE","true"
}
debug{
buildConfigField "Boolean","ISRELEASE","false"
}
}
来看看我们编译后的build.gradle
很明显我们可以看到ISRELEASE这个变量,这里我们就可以在项目中读取这个变量,使用
BuildConfig.ISRELEASE
且这个案例可以解决上面提到的第一和第二个场景