说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 versionCode1 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调用即可。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信