Chinaunix首页 | 论坛 | 博客
  • 博客访问: 405334
  • 博文数量: 78
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 940
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-25 09:39
文章分类

全部博文(78)

文章存档

2016年(7)

2015年(1)

2014年(35)

2013年(35)

我的朋友

分类: Android平台

2014-01-06 13:13:35

android 调试技巧BuildConfig.DEBUG

ADTR17)会自动生成一个名称为BuildConfig的类,该类包含一个DEBUG 常量,该常量会根据当前项目的Build类型自动设置为truefalse。可以通过(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); 

}

阅读(4857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~