簡體   English   中英

Android活動生命周期:何時將Logcat保存到文件中?

[英]Android activity life cycle: when to save the Logcat into a file?

我的問題與類似,但我有更具體的需求。 開始了:

在我的Android應用程序中,我想添加將Logcat保存到日志文件中的功能。 因此,當用戶報告我的應用程序有問題時,我可以要求提供日志文件。 保存的logcat到一個文件是非常直接的,如討論在這里 現在的問題是:什么時候保存?

我當前的計划是在應用程序的onCreate中調用logcat -c ,並將Logcat保存在onStop中。 通過提前調用logcat -c ,我刪除了與我的應用程序無關的信息。

但是,我在計划中看到兩個缺陷:

  • 如果用戶安裝了兩個與我不同的應用程序,則第二個應用程序可能會在第一個完成之前啟動。 因為沒有調用第一個應用程序的onStop,所以Logcat尚未保存。 logcat -c ,第二個應用程序的onCreate中的logcat -c將清除第一個應用程序的所有日志記錄信息。

  • 即使只有一個應用程序正在運行,如果它崩潰,它的onStop也不會被調用。 還是? 我檢查了活動的生命周期,但無法確定在發生崩潰時是否調用onStop。 假設它沒有被調用,那么這超出了我的目的。 我需要Logcat來了解為什么我的應用程序崩潰,但是如果Logcat崩潰,則不會保存。

有什么想法和/或建議嗎? 提前致謝!

不建議在發行版本上啟用日志。 當應用程序崩潰並報告用戶時,您可以從開發人員控制台獲取崩潰堆棧跟蹤。 堆棧跟蹤足以分析崩潰,它將清楚地指出類,方法和行號。

如果您在應用程序中啟用了proguard,則可以使用映射文件來重新分析堆棧跟蹤以分析崩潰。

嘗試在運行時讀取Logcat時還有其他一些問題:在發送報告時,日志的重要部分可能已經退出緩沖區,並且您首先需要READ_LOGS權限才能讀取Logcat。

我建議實現各種免費日志記錄庫之一。 我更喜歡Crashlytics ,它會自動處理崩潰報告(通過使用UncaughtExceptionHandler),並允許您在發送異常之前指定各種標記和用戶日志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM