2014-04-02 59 views
5

在我的Android應用程序中,我廣泛使用Log.iLog.e在生產中保持Log.i安全嗎?

在這些命令上,我通常會通過SQLite查詢或與我的應用程序通信的http rest url。

我的問題是:應用程序到達Play商店時是否安全地保留這些日誌?如果用戶使用他的計算機上連接的設備運行該應用程序,他將能夠查看他的LogCat上的日誌消息?

+0

如果你離開它當然用戶將能夠看到它。 – Blackbelt

+0

是的,用戶可以在logcat – sabadow

+0

中讀取這條日誌消息......這兩個問題在Play商店中都是安全的,是的,能夠看到 –

回答

2

不,在生產中保留日誌方法是不安全的。這些日誌可用於跟蹤Android中的不同回調,如果您在其中顯示數據庫記錄,則必須在發佈您的應用程序之前刪除這些記錄。

而且您不必在項目中逐個刪除日誌回調。您可以使用Proguard自動刪除Log方法,只需在項目根目錄中寫入proguard-project.txt中的幾行即可。

Follow this answer to remove logging methods using proguard

+0

爲什麼不安全?我的意思是,如果你的字節碼在其他人的計算機上運行,​​那麼你必須假設沒有任何東西可以隱藏起來。 –

2

是的,用戶將能夠讀取這些日誌文件。它是'安全'嗎? 取決於。你的休息電話或sqlite查詢是祕密嗎?例如,所有的網絡通信都可以用wireshark讀取。

當我發佈我的應用程序時,我所做的是:我使用方法i,d,e等創建自己的Log類,並使用此Log類代替Android,因爲那時我可以使用簡單開關,如boolean debug = true我寫到LogCat或不寫。這樣我可以將所有日誌語句留在應用程序中。 當你寫你自己的日誌類,使用它在你的應用程序,你可以簡單地用

import your.package.Log; 

與Eclipse替換所有

import android.util.Log; 

+0

你的建議是我所想的,以防萬一它不安全。然而,sabadow和Shajeel Afzal建議的proguard似乎更吸引人 – antoniom

2

記錄是開發人員使用的非常方便的調試和診斷技術。使用作爲Android SDK一部分提供的日誌記錄類將關於應用程序的重要信息記錄到LogCat中,但確保在發佈之前檢查應用程序的日誌記錄實現,因爲日誌記錄具有性能缺陷。

在發佈您的應用程序之前仔細查看您的日誌,以免泄露任何機密數據。

只要您的應用程序處於測試模式,記錄就非常重要。日誌將爲您提供當前設備上應用程序的當前狀態和場景。所以每當你更新你的應用程序時它都非常有幫助。

有時Google Play會拒絕您的應用程序,如果他們發現您的日誌記錄機制違反了規則。