gradle 获取编译是否是debug_Android配置build.gradle的buildTypes动态自动维护debug和release包自定义字段变量值...

本文介绍了如何在Android的build.gradle文件中配置buildTypes,以动态维护debug和release包的自定义字段变量值。通过buildConfigField设置不同类型的变量,如字符串、布尔值和整数,并在代码中通过BuildConfig访问这些值,实现不同编译模式下的差异化配置。
摘要由CSDN通过智能技术生成

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值