在日常开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是在打包发布时,需要手工把Log关闭,多少会有些不便,而且不排除打包者忘记关闭Log的情况。那么有没有更好的方法来帮助开发者解决这个问题?
ADT(r17)发布以后,Google为我们提供了一种新的调试机制,即BuildConfig.DEBUG。
ADT 17.0.0的New build features第二条如下描述:
Added a feature that allows you to run some code only in debug mode. Builds now generate a class called BuildConfig containing a DEBUG constant that is automatically set according to your build type. You can check the (BuildConfig.DEBUG) constant in your code to run debug-only functions.
即:
新增了一个特性,允许开发者只在Debug模式下运行部分代码。Builds会生成一个叫做BuildConfig的类,该类包含一个名为DEBUG的常量,其常量值会依据开发者的Build类型自动设定。如此,便可以利用BuildConfig.DEBUG来实现只在Debug模式下运行的代码。
如果你的ADT已经更新到17及以上版本,可以尝试在Eclipse中新建一个Android工程,你会发现和R.java同级目录下多了一个叫做BuildConfig.java的类,其内容如下:
/** Automatically generated file. DO NOT MODIFY */
package com.nodin.mo;
public final class BuildConfig {
public final static boolean DEBUG = true;
}
使用方法比较简单,在需要区分是否为Debug模式的代码块前添加对DEBUG的判断即可,如下:
if (BuildConfig.DEBUG) {
Log.i("DEBUG", "debug mode.");
// TODO codes ran in debug mode
// ......
}
在文章开头提到,DEBUG会根据Build类型自动设定。那么Build类型又从哪里区分呢?很简单,点开Eclipse的Project菜单便可见分晓,如下图:
可见,Build类型分为Build Project和Build Automatically,即手动和自动。
需要注意的是,如果直接通过Eclipse运行Project,则不论Build是手动还是自动,DEBUG均不会被设定为false。这是为什么呢?这就牵涉到Android 签名的问题,这里只简单提一下,不赘述:直接通过Eclipse运行Project,Eclipse会在工程Build完毕后在bin目录下生成一个apk,这个apk的签名是调试模式(debug mode),和发布模式(release mode)签名生成的apk略有不同。如此,该问题产生原因便浮出水面。
此时肯定会有人说,直接使用Android Tools-->Export Signed Application Package导出的release mode apk,其DEBUG就是false。这是不对的。在生成Release版时,需要区分Build的类型。如果选择的是自动Build,那么DEBUG仍然会被设定为true。所以在生成Release版时,请按照下面这个步骤进行打包,BuildConfig.DEBUG会被修改为false:
1、取消Build Automatically
2、Clean(means compiling all java classes)
3、Build
4、Export Signed Application Package
回到开头的问题,有没有更好的方法帮助开发者解决Log关闭的问题?看过本篇文章,相信你已找到答案。
——2013.6.19 写于北京
——陌上幽人
本文系Nodin原创,欢迎分享转载,转载请注明出处http://www.cnblogs.com/monodin/archive/2013/06/19/3144204.html
相关推荐
虽然ADT-23.0.6是一个稳定的版本,但随着Android的不断发展,Google推出了新的官方IDE——Android Studio。相比于ADT,Android Studio提供了更强大的Gradle构建系统、更好的性能、更丰富的功能,以及对最新Android...
2. **SDK Tools**:一套用于开发、调试和测试Android应用的命令行工具,如`adb`(Android Debug Bridge)、`ddms`(Dalvik Debug Monitor Service)等。 3. **Android模拟器**:开发者可以使用AVD(Android Virtual...
在本项目"安卓Android源码——调用安卓自带文本朗读.zip"中,重点涉及了如何利用Android系统内置的文本转语音(Text-to-Speech, TTS)服务来实现文本的朗读功能。以下是对这一主题的详细解释: 1. **Android Text-...
这个压缩包文件“安卓Android源码——仿iphone 气泡短信 DEMO.zip”是一个针对Android平台的开发项目,主要用于创建一个类似于iPhone风格的气泡式短信界面的演示程序。这个DEMO旨在帮助开发者了解如何在Android应用...
【Android ADT简介】 "Android1\ADT-10.0.0.zip"是一个针对Android开发者的重要工具包,它包含了Android Developer Tools (ADT) 的版本10.0.0。ADT是Eclipse IDE的一个插件,专门用于简化Android应用的开发过程。这...
**Android ADT 插件详解** Android Developer Tools (ADT) 是一款专为Eclipse集成开发环境设计的插件,用于支持Android应用的开发。在标题中提到的"ADT-22.0.0.zip"是这个插件的一个特定版本,即版本22.0.0。该版本...
com.android.ide.eclipse.adt_12.0.0.v201106281929-138431.jarcom.android.ide.eclipse.adt_12.0.0.v201106281929-138431.jar
2. 在Eclipse中,开发者需要安装Android Development Toolkit (ADT)插件,以便进行Android项目的创建、编辑和调试。 3. 使用Java编程语言编写Android应用,因为Android应用的基础是Java,开发者需要熟悉Java语法和...
【标题】"安卓Android源码——捕鱼达人源代码.zip" 提供的是一个基于Android平台的捕鱼达人的游戏源代码,这是一份对于Android开发者来说非常有价值的参考资料。它可以帮助开发者深入理解游戏开发流程,特别是...
【标题】"安卓Andriod源码——重力感应跑步测速应用.zip" 提供的是一款基于Android平台的源码示例,它利用设备的重力感应器来实现跑步测速功能。这样的应用通常用于健康与健身类APP,帮助用户追踪运动数据。 【描述...
aix5.3 bos.adt.libm 5.3.0.0 smit installp
这个压缩包文件“AndroidADT.zip”可能是包含了ADT Bundle的完整安装包,包含了Eclipse IDE以及针对Android开发的插件,使得开发者能够在Eclipse环境中进行高效的工作。 在Android ADT中,主要包含以下几个关键组件...
Android ADT-X.X.X.zip 官方下载地址: http://dl.google.com/android/ADT-8.0.0.zip http://dl.google.com/android/ADT-0.9.9.zip http://dl.google.com/android/ADT-0.9.8.zip ...
在“数据结构——C语言描述习题及答案.doc”这份文档中,我们可以看到一系列关于数据结构和C语言编程的问题。这些问题涵盖了以下几个关键知识点: 1. **数据构造**:数据构造是数据的逻辑组织形式,例如数组、链表...
《Android IDE Eclipse ADT 插件详解》 在Android应用开发的世界中,Eclipse集成开发环境(IDE)曾经是主流的选择,而ADT(Android Development Tools)插件则是Eclipse中不可或缺的一部分。本文将深入探讨...
这份"安卓Android源码——多点缩放字体DEMO.zip"包含了一个演示如何实现这一功能的实例。以下是对这个DEMO中涉及的关键知识点的详细解释: 1. **Android源码**:源码是应用的基础,它揭示了程序的工作原理和结构。...
这个"安卓Android源码——进度条对话框Demo源码.zip"压缩包提供了一个实例,帮助开发者理解如何在Android应用中实现和使用进度条对话框。以下是对这个Demo源码中的关键知识点的详细说明: 1. **ProgressDialog**:...
Android ADT-0.9.6.zip官方下载地址: http://dl.google.com/android/ADT-0.9.6.zip Android ADT-0.9.7.zip官方下载地址: http://dl.google.com/android/ADT-0.9.7.zip Android ADT-0.9.8.zip官方下载地址: ...