gradle自动生成BuildConfig类的妙用
说BuildConfig类之前,先谈谈通常会遇到的场景:
1.Log打印日志这个需求,通常大家都会写一个LogUtils工具类,暴露一些常用的log.e log.d log.i等方法, 在方法会用到一个静态常量去作为开关。
2.Api接口地址的变换这个需求,通常都是写一个类里面放上一个静态常量表示Api的地址,然后我们是需要debug模式运行时采用测试环境Api接口地址,在打release包上线时则切换为生产环境的Api接口地址。
3.配置一些第三方平台的固定参数,比如微信、QQ、微博的AppKey、AppSecret。
……
以上说到的几个常见的需求,再不借助系统BuildConfig类的情况下是需要自己写常量类,每次不厌其烦地注释、更改内容……
这时候的你肯定希望,能把自己的双手从这些简单繁琐的工作中解放出来。其实咱们就能利用build插件gradle自动生成的BuildConfig类来解决这些问题。
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
applicationId "com.xxx.android"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode 1
versionName "1.0"
buildConfigField "String", "QQ_APPID", '"xxxxxxxx"'
buildConfigField "String", "WB_APPID", '"xxxxxxxx"'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
buildConfigField "String", "API_SERVER_URL", '"http://test.example.com/api"'
//混淆
minifyEnabled true
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
//前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 声明使用的签名配置
signingConfig signingConfigs.releaseConfig
}
debug {
buildConfigField "String", "API_SERVER_URL", '"http://test.example.com/api"'
minifyEnabled false
zipAlignEnabled true
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
}
在编译以后, 去查看BuildConfig类发现如下图
果然看见了我们设置的自定义参数……
其中BuildConfig.DEBUG 表示目前是否debug状态,用到这个变量的地方很多。
最后要说的使用方式那就太简单了,直接BuildConfig.xxxx调用即可。
原文链接https://blog.csdn.net/u012982629/article/details/81088101
本文链接:
/archives/gradle%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90buildconfig%E7%B1%BB%E7%9A%84%E5%A6%99%E7%94%A8
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
极客卷毛——我的学习经验记录!
喜欢就支持一下吧