分类: Android平台
2014-01-06 13:13:35
android 调试技巧BuildConfig.DEBUG
ADT(R17)会自动生成一个名称为BuildConfig的类,该类包含一个DEBUG 常量,该常量会根据当前项目的Build类型自动设置为true或false。可以通过(BuildConfig.DEBUG) 常量来编写只在Debug模式下运行的代码。如果有些代码不想在发布后执行,就可以使用该功能,如调试中Log的使用。
过去调试log的编写方式是设置一个全局变量,标记软件为DEBUG模式还是其他模式。例:
public static boolean DEBUG = true;
//...
if(DEBUG==true){
Log.d(TAG,"output something");
}
在打包发布之前还要修改DEBUG变量的值为false,有时候不记得或者变量到处都有,重新修改、编译、发布,费时费力,并且容易出错。
使用BuildConfig.DEBUG:
在编码调试,编译发布前,BuildConfig.DEBUG的值自动为true,发布应用时BuildConfig.DEBUG的值自动为false。在打包时,先禁用 “Build Automatically”, “Clean”工程目录,再通过 ”Android Tools -> Export Signed Application Package” 编译打包,BuildConfig.DEBUG的值会被改为false。例:
package com.example.android.first;
//定义一个Constant接口作为log标记
public interface Constants {
String LOG = "com.example.android.first";
}
//添加log语句到onCreate方法中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (BuildConfig.DEBUG) {
Log.d(Constants.LOG, "onCreated called");
}
setContentView(R.layout.activity_main);
}