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使用之:


 

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页