2011-07-20 62 views
3

我有一個包裝類在開發過程中進行日誌調用。這使得在任何特定時間打開或關閉所有日誌記錄變得容易(加上一些其他漂亮的功能)。之前,我使用特定的ProGuard優化來在發佈期間刪除此類,這也刪除了對類的靜態方法的調用(因此不會留下任何日誌字符串)。如何在不使用ProGuard優化的情況下刪除日誌記錄調用?

不幸的是,因爲this,我必須禁用的ProGuard的優化功能。雖然我可以輕鬆關閉日誌記錄,但是所有日誌字符串在結果apk中仍然可見,除非我錯過了某些內容,否則ProGuard中沒有其他方法可以將其刪除。

在Eclipse GUI中構建發行包時,是否有其他方式可以刪除這些字符串? (不是ANT)

回答

0

我不知道你的字符串文字等等,但模擬ifdef調試語句,你會做一些similar to this這可能是微不足道的,如果你可以包裝所有受影響的內部類/方法/ var的你的調試類在這樣的語句中。

很顯然,編譯器會刪除它在該塊中找到的任何或多或少的死代碼,或者我已閱讀過,但從未檢查過它。

+0

這些字符串實際上是在調用日誌記錄方法:Logger.print(「在這裏執行某些操作」);'不幸的是,在Logger類中禁用日誌記錄仍然會將字符串分散到整個項目中。 (這是關於ProGuard方法的偉大之處 - 它實際上也刪除了所有的通話) – wirbly

+0

@wirbly,基本上很多if {增加,也許有人會出現沒有別的東西,這是我能想到的sans ProGuard – Idistic

相關問題