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

---------------------

作者:zhangphil

来源:CSDN

原文:https://blog.csdn.net/zhangphil/article/details/84834014

版权声明:本文为博主原创文章,转载请附上博文链接!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐