2011-03-28 51 views
0

在Android應用程序中,生成報告的最佳策略是什麼,以後可由用戶查看?我正在談論應用程序的正常運行,並不一定是錯誤&例外。安卓日誌記錄和報告生成

我已經記數的選擇,但每一個似乎有問題:

  1. logcat的(使用特定的標籤「MyAppsLog」,提供用戶一個功能來讀取所有語句使用未登錄的狀態標籤)
    注意:我相信Logcat的主要目的是爲開發人員提供調試信息,而不是爲最終用戶提供。

  2. 手動打開一個平面文件並附加您的日誌語句。
    注意:如果沒有用於記錄和報告生成的標準機制,可以走這條路線。既然這是一個標準要求,我希望不要重新發明輪子。另外,如果應用程序重新安裝,文件可能會丟失。如果寫在SD卡/外部存儲中以避免這種可能性,可能不是私人的。

  3. 使用第三方工具ACRAandroid-remote-stacktrace
    :我認爲,這些工具的目的是崩潰報告,我不認爲他們是標準的報表生成的最佳選擇。

許多企業應用程序需要有一種方法來生成報告(應用程序,而不是錯誤的正常運行),使企業用戶可以在以後查看。我希望這裏的答案對更多的人有用,而不僅僅是我。

回答

3

那麼如何使用SQLite數據庫,並將日誌數據轉儲到表中?擊敗我認爲的平面文件選項。您甚至可以彙總轉儲的數據或開始查詢。

+0

感謝您的回答。我很想知道爲什麼你認爲數據庫比平面文件更好(因爲大多數日誌和報告都是平面文件)?我明白,如果我們要從相同的數據生成不同格式的複雜報告,那麼使用數據庫是有意義的。但對於簡單的日誌文件,複雜性會值得嗎? – OceanBlue 2011-03-29 14:23:22

+0

這取決於你想如何使用收集的數據。如果你不想對日誌進行任何複雜的操作,那麼當然可以將它們轉儲到文件中。 – 2011-03-29 17:25:53

0

Sqlite很重,並且需要大量的內存和進程。

優勢平面文件:

  1. 所有日誌信息的單點,
  2. 易於管理,
  3. 容易刪除(清除緩存)
  4. 性能(當文件大小長大)應用程序的性能保持不變
  5. 任何人都可以讀取日誌文件,並且可以知道哪個進程正在運行
  6. 如果數據不是很大/複雜,那不是m很重要(如果有人閱讀),然後只使用平面文件。