Android 与gradle 4 --gradle配置之BuildConfig与resValue

来源:互联网 发布:淘宝如何优化关键词 编辑:程序博客网 时间:2024/05/21 23:01

在使用AS进行开发的时候,我们有时会遇到这样的需求,如果想要在gradle中配置一个变量,

并且想要在app运行的时候得到这个变量的值,这个时候该怎么做呢。


通过配置BuildConfig可以满足需求


Demo1:在defaultConfig中配置BuildConfig

defaultConfig {

  ...    buildConfigField("String","testKey","\"testValue\"")}
Rebuild之后:
BuildConfig.class文件生成了如下成员变量
// Fields from default config.public static final String testKey = "testValue";
Demo2:在buildTypes和productFlavors中配置BuildConfig
除了在defaultConfig中之外,buildTypes和
productFlavors中也能配置BuildConfig
buildTypes {
...    debug {        buildConfigField("String","debugtestKey","\"debugtestValue\"")    }}
productFlavors{    Flavortest{        buildConfigField("String","testFlavorKey","\"testFlavorValue\"")    }}
结果如下:
// Fields from build type: debugpublic static final String debugtestKey = "debugtestValue";// Fields from product flavor: Flavortestpublic static final String testFlavorKey = "testFlavorValue";// Fields from default config.public static final String testKey = "testValue";
Demo3: resValue配置
如果说想通过类似getResource().getString()这种方式获取变量的值,要怎么做呢
defaultConfig {  ...    resValue("string", "test1Value", "1")}buildTypes {  ...    debug {        resValue("bool", "test2Value", "true")    }}productFlavors{    Flavortest{        resValue("integer", "test3Value", "3")    }}
Log.i(this.getClass().getSimpleName(),getResources().getString(R.string.test1Value));Log.i(this.getClass().getSimpleName(), getResources().getBoolean(R.bool.test2Value)+"");Log.i( this.getClass().getSimpleName(),getResources().getInteger(R.integer.test3Value)+"");









原创粉丝点击