2012-07-13 56 views
1

我的情況如下:我有一個遠程服務,任何應用程序都可以通過它與Messenger進行通信。應用程序發送我定義的定製事件每個事件定義一個要執行的「動作」(類似於Android的Intent)。爲了測試服務發送和處理的事件,我想設置一個新的事件動作(例如EventAction.DEBUG),但我不希望這個動作和處理它的代碼出現在發佈中。打開/關閉調試的最佳方法

這是我的想法:

  • 使用final static boolean變量有條件地執行代碼。我不喜歡這個,因爲硬編碼變量。
  • 從配置文件中讀取調試狀態。這很慢,編譯器也會生成代碼來處理調試,所以無用的比較會隨之而來。
  • 在啓動時將調試標誌傳遞給應用程序。我忽略了在Android中如何做到這一點,或者即使這是可能的。另外我認爲這也會使編譯器生成調試代碼。

你認爲什麼是實現這一行爲最好的辦法?

回答

2

Android的ADT版本17和更高已經包含其中出口簽署過的APK(發佈)時設置爲false BuildConfig.DEBUG變量。

4

A final static。 ProGuard將刪除未使用的代碼。

對於一個配置文件值 - 這是唯一的「無用」如果能永遠在運行時改變,相比於應用程序的其他部分時,一個比較是不是所有的慢,真的。

相關問題