關於ADT 17的BuildConfig.DEBUG

來源:互聯網
上載者:User

      在日常開發中,我們使用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.      詳見: http://developer.android.com/intl/zh-CN/tools/sdk/eclipse-adt.html      即:      新增了一個特性,允許開發人員只在Debug模式下運行部分代碼。Builds會產生一個叫做BuildConfig的類,該類包含一個名為DEBUG的常量,其常量值會依據開發人員的Build類型自動設定。如此,便可以利用BuildConfig.DEBUG來實現只在Debug模式下啟動並執行代碼。       如果你的ADT已經更新到17及以上版本,可以嘗試在Eclipse中建立一個Android工程,你會發現和R.java同級目錄下多了一個叫做BuildConfig.java的類,其內容如下: finalclass     = ;      使用方法比較簡單,在需要區分是否為Debug模式的代碼塊前添加對DEBUG的判斷即可,如下: (BuildConfig.) {(, ); 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關閉的問題?看過本篇文章,相信你已找到答案。 ——陌上幽人  本文系Nodin原創,歡迎分享轉載,轉載請註明出處 http://www.cnblogs.com/monodin/archive/2013/06/19/3144204.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.