通过AS中BuildConfig.DEBUG字段用来自定义调试Log
2017-06-28 13:43
375 查看
BuildConfig.DEBUG
首先在Gradle脚本中默认的debug和release两种模式BuildCondig.DEBUG字段分别为true和false,而且不可更改。该字段编译后自动生成,在Studio中生成的目录在app/build/source/BuildConfig/Build Varients/package name/BuildConfig 文件下。我们以9GAG为例来看下release模式下该文件的内容:public final class BuildConfig { public static final boolean DEBUG = false; //... public static final boolean IS_SHOW_DEBUG
= false; }
自定义BuildConfig字段
大家看到上述内容的时候发现莫名的有个IS_SHOW_DEBUG字段,这个完全是我自定义的一个字段,我来用它控制Log的输出,而没有选择用默认的DEBUG字段。举例一个场景,我们在App开发用到的api环境假设可能会有测试、正式环境,我们不可能所有的控制都通过DEBUG字段来控制,而且有时候环境复杂可能还会有两个以上的环境,这个时候就用到了Gradle提供了自定义BuildConfig字段,我们在程序中通过这个字段就可以配置我们不同的开发环境:在app的build.gradle配置如下:
buildTypes {
release {
minifyEnabled false
buildConfigField "boolean", "IS_SHOW_LOG", NOT_SHOW_LOG
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
buildConfigField "boolean", "IS_SHOW_LOG", SHOW_LOG
}
preview {
minifyEnabled false
buildConfigField "boolean", "IS_SHOW_LOG", SHOW_LOG
}
}其中SHOW_LOG和NOT_SHOW_LOG在gradle.properties中声明:
org.gradle.jvmargs=-Xmx1024m
SHOW_LOG true
NOT_SHOW_LOG false
点击项目重新build一下,下面就可以写app你想要的日志输出了:
public class MyLog {
public static int i(String tag, String msg) {
if (BuildConfig.IS_SHOW_LOG) {
return Log.i(tag, msg);
} else {
return -1;
}
}
public static int i(String tag, String msg, Throwable tr) {
if (BuildConfig.IS_SHOW_LOG) {
return Log.i(tag, msg, tr);
} else {
return -1;
}
}
public static int v(String tag, String msg) {
if (BuildConfig.IS_SHOW_LOG) {
return Log.v(tag, msg);
} else {
return -1;
}
}
public static int v(String tag, String msg, Throwable tr) {
if (BuildConfig.IS_SHOW_LOG) {
return Log.v(tag, msg, tr);
} else {
return -1;
}
}
//等等其他你想打印的方法....
}
相关文章推荐
- 安卓Studio学习笔记---gradle自定义BuildConfig.DEBUG实现在调试输出Log,正式的时候不输出Log
- BuildConfig自定义字段在debug模式和release版本的使用
- Android调试大法 自定义IDE默认签名文件==>微信支付、微信登录、微信分享,debug时调试通过,release时调不起微信
- flask如何通过不使用debug=True,通过使用config开启调试模式
- 通过配置Flavors和自定义buildConfigField进行多个服务器地址打包
- 通过配置Flavors和自定义buildConfigField进行多个服务器地址打包
- buildConfigField "boolean", "LOG_DEBUG", "true"
- buildConfigField "boolean", "LOG_DEBUG", "true"
- 请通过执行“调试”->“Debug.Start Without Debugging”验证 web.config 中没有语法错误
- android Log控制小技巧--BuildConfig.DEBUG的使用
- 调试Bug的神兵利器:通过WinDbg条件断点收集Log
- 调试MTK mmi程序时通过debug口打印调试信息的方法
- android-基础知识:android调试总结(Log日志输出, Debug, 单元测试)
- 内核中自带的内存调试方法CONFIG_DEBUG_SLAB
- 调试Bug的神兵利器:通过WinDbg条件断点收集Log
- 问题:build test failed. Please check the config.log for details.
- android中BuildConfig.DEBUG的使用
- 一起谈.NET技术,提供第三种代码生成方式——通过自定义BuildProvider为ASP.NET提供代码生成
- VSTF Build Workflow(5)调试自定义Build Activity
- MT6573 Android在Eclipse中Debug方式分两种,一种是编译模拟器,在模拟器的基础上进行调试,还有一种是通过真机remote debug。