關於ADT 17的BuildConfig.DEBUG

      在日常開發中,我們使用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 寫於北京
——陌上幽人
 
 
歡迎分享轉載,轉載請註明出處http://www.cnblogs.com/monodin/archive/2013/06/19/3144204.html
發佈了48 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章