buildGradle中配置属性
有时候为了方便,我们需要将某一些属性配置在buildGradle中,例如,想让一个app项目适配两种不同的系统或者机型,代码编译或者打包的时候可能需要引用不同的配置就需要在buileGradle中进行不同的配置。
如果想定义一个boolean类型的属性,我们可以下在android的 defaultConfig结点中写
buildConfigField "boolean", "isPx30", "false" 此时就会有一个属性叫isPx30的属性,值为false。
在java中调用的话只需要调用BuildConfig.isPx30就可以了。
同理其他属性的配置也可以配置举例如下:
buildConfigField "int", "CITY", "0" buildConfigField "boolean", "isPx30", "false" buildConfigField "String", "defalutCountryId", "\"8311\"" buildConfigField "boolean", "isBYD", "false" buildConfigField "boolean", "isRDA", "true"
配置好属性后我们只需要点击AndroidStudio中的同步gradle按钮就可编译出一个BuildConfig的java文件,然后就可以在java代码中调用了。
编译结果如下:
从中可以看到其实build文件中的其他默认属性也都是编译到这个文件中了,例如 applicationId,versionCode ,versionName等
注意上面如果编译String类型的时候,属性值一定要用两个“\”括起来,不然就会编译出错。
同理如果我们想在BuildGradle中写一个编译时间,那么我们就可以在代码里面调用这个属性了,就可以知道这个app的编译时间了,如下:
buildConfigField "String", "BUILD_TIME", "\"" + getDate() + "\""
注意后面的双斜杠,getDate是自己写的一个方法,我们只需要将这个方法下载buildgradle中和android平级目录就可以了
String getDate() { Date date = new Date() String time = date.format("yyyy-MM-dd HH:mm:ss", TimeZone.getTimeZone("GMT+8")) return time }