Android配置build.gradle的buildTypes动态自动维护debug和release包自定义字段变量值
Android配置build.gradle的buildTypes动态自动维护debug和release包自定义字段变量值
在Android编译出包阶段,debug包和正式的release有时候需要作出有所区别的调整。
比如最常见的是App应用程序中Log日志输出开关的控制。开发者希望在debug阶段Log日志能够打开输出,以便排查定位问题,而在正式的release包中,为了避免泄露App应用程序内部的信息而需要把Log日志输出关闭掉,这通常需要依赖于BuildConfig里面Android系统定义的静态变量值DEBUG,DEBUG是一个Android系统预先为开发者准备的布尔值,当在debug阶段,这个值为true,当在打出的release包时候,这个值为false。
现在如果单单一个BuildConfig.DEBUG值不能满足开发者需求,假如开发者需要自定义更多的类似于BuildConfig.DEBUG这样的值,在debug阶段和release阶段自动动态维护和管理不同的值,以提供给App应用程序中的代码使用,那么可以通过配置build.gradle的buildTypes实现,例如这样配置buildTypes:
apply plugin: 'com.android.application'android { ....... buildTypes { debug { buildConfigField "String", "MyAppType", '"debug"' buildConfigField "String", "MyName", '"zhang"' buildConfigField "boolean", "MyLOG_DEBUG", "true" buildConfigField "int", "MyNumber", "2018" } release { buildConfigField "String", "MyAppType", '"release"' buildConfigField "String", "MyName", '"phil"' buildConfigField "boolean", "MyLOG_DEBUG", "false" buildConfigField "int", "MyNumber", "2019" } ...... } ......}
buildTypes里面定义了四个值:MyAppType(字符串String类型),MyName(字符串String类型),MyLOG_DEBUG(布尔值boolean类型),MyNumber(整数int类型)。
定义的类型当然不限于以上几种,开发者根据需要可以定义更多复杂类型。定义的格式为:
字段变量类型,字段变量名,具体的值
定义好后,Android Studio自动的在BuildConfig里面产生:
后面如果包是debug模式,那么字段变量和值的对应情况为:
"MyAppType", '"debug"'
"MyName", '"zhang"'
"MyLOG_DEBUG", "true"
"MyNumber", "2018"
如果是在release模式下的包,对应的值情况:
"MyAppType", '"release"'
"MyName", '"phil"'
"MyLOG_DEBUG", "false"
"MyNumber", "2019"
在上层Java代码中直接通过BuildConfig使用之:
更多相关文章
- 谷歌Android与Chrome合一你怎么看 搭载Android(安卓)L谷歌Nexus
- android style的继承方式 点(.)和parent
- Android(安卓)自定义控件基础
- Android系统使用MediaFile类判断音频文件类型
- Android(安卓)ListView 自定义用法(ListView 实现单选功能)
- Android开发周报:Google收购Android十周年、Android最新技术解析
- Android绘图机制(五)自定义控件的官方实例
- Android:自定义View三个方法的意义
- 又议android中的manifest清单文件