2012-01-30 172 views
1

我正在開發APK。我希望能夠設置和取消調試各種選項。例如:在APK中動態啓用/禁用調試功能的方法

  • 啓用時間輪廓跟蹤
  • 啓用一些實驗性的功能
  • 啓用非常詳細的輸出到logcat的
  • ...

目前,我們通過創建一個做到這一點在我們的代碼中標記每個功能並設置/取消設置。但是:

  • 是時間,因爲需要重建,上傳並重新啓動APK
  • 耗時運行的人們在調試模式不小心檢查事物狀態
  • 需要重建APK的風險 - - 我們不能要求我們的客戶啓用調試功能並報告結果。

Android開發人員有沒有模式解決這類問題?

過去,我們爲此使用了環境變量。

回答

0

我會考慮這樣做的兩種方式之一,這取決於你想了解此功能的多少暴露給用戶:

  • 主要的調試功能關閉SharedPreference值,並且在揭露他們UI中的首選項/調試菜單。

  • 在外部存儲中使用文件的存在/內容,您可以通過電子郵件將文件發送到&指示最終用戶將其放置在何處以啓用調試功能。

選項2與使用環境變量的概念沒有多大區別。

1

您可以在您的apk中使用調試權限SET_DEBUG_APP。創建一個新的類叫

class MYLog { 
i(String Tag, String msg) { 
    if(LOG_ENABLED){ 
    Log.i(TAG, msg); 
} 

您可以調用MyLog.i而不是Log.i()。您可以從服務器獲取LOG_ENABLED值以啓用/禁用日誌記錄。

+0

然後我可以禁用調試輸出而無需重建,上傳和重新啓動APK? – user48956 2012-01-30 21:38:17

+0

是的,您可以在服務器中禁用它。你不需要創建另一個apk文件。無論何時啓動應用程序,它都會從服務器獲取LOG_ENABLED標誌,以確定日誌啓用/禁用狀態。您將需要從應用程序讀取日誌並將其發送到服務器的權限。 – dcanh121 2012-01-30 21:49:03