您的位置:首页 > 产品设计 > UI/UE

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

2017-08-21 15:21 441 查看
在使用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)+"");

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gradle