我有一個關於查找應用程序是否處於發佈模式或調試的問題。 我需要找到一種方法來自動檢測應用程序模式的功能。現在我使用一種簡單的方法來聲明boolean
,每次我必須更改true/false
。但有時我或其他開發者可能會忘記改變它。其實我需要這個,因爲我在我的應用程序中使用了一個錯誤處理程序,它正在向我們的服務器發送未捕獲的異常。我不想在調試模式下執行此操作。Android調試/發佈版本的應用程序
那麼有沒有什麼辦法可以檢測到我的應用會自動執行的一些功能,而不使用像我這樣的變量?
我有一個關於查找應用程序是否處於發佈模式或調試的問題。 我需要找到一種方法來自動檢測應用程序模式的功能。現在我使用一種簡單的方法來聲明boolean
,每次我必須更改true/false
。但有時我或其他開發者可能會忘記改變它。其實我需要這個,因爲我在我的應用程序中使用了一個錯誤處理程序,它正在向我們的服務器發送未捕獲的異常。我不想在調試模式下執行此操作。Android調試/發佈版本的應用程序
那麼有沒有什麼辦法可以檢測到我的應用會自動執行的一些功能,而不使用像我這樣的變量?
沒有通用的解決方案,但您可以使用isDebuggerConnected。
但是如果您的用戶將手機連接到PC並使用ddms,該解決方案也會觸發/顯示調試功能。
也許你與前人的精力支票阿萊克斯摹提出的一個結合這一點,並在每提醒您禁用調試;-)
爲什麼不利用這個開始彈出一個烤麪包的消息?
if (BuildConfig.DEBUG) {
// what shall happen in debug version
} else {
// release version
}
我不認爲你可以簡單地做到這一點。您可以嘗試從清單中檢索應用程序的'android:debuggable'屬性,但這又不是100%確定的。 – 2012-01-27 14:00:47
另一種方法是從apk中檢索簽名的哈希,並將其與用於簽名應用程序的已知調試/發佈簽名進行比較。 – 2012-01-27 14:01:18
所以我必須堅持使用布爾變量 – 2012-01-27 14:07:52