1

对于我正在开发的应用程序,我想在开发和发布时简化故障排除。我希望能够在Log没有连接 USB 调试的手机的情况下运行应用程序时检索调用,以便可以检索并发送给我。例如,当应用程序崩溃或被Log.e(...)调用时,可以将日志历史记录(Calls to Log.i(), Log.w())发送到服务器,或者用户可以手动发送给我。

如何/应该如何做到这一点?

此外,该技术是否应该根据应用程序处于开发阶段还是发布阶段而有所不同?(我从不应该编译成发布版本的androidLog文档中知道 - 有没有比注释掉所有这些调用更好的方法?)Log.v(...)

扩展或滚动我自己的可能是有意义Log的,但魔鬼在细节中。

4

2 回答 2

1

为了检索崩溃日志,有一个库ACRA。Acra 将向您的服务器发送崩溃报告。或者,google play 在开发者控制台中也有一个崩溃和 ANR选项卡,用于存储用户提交的崩溃报告。Google Play 控制台的崩溃报告非常易于使用,并提供有关相同崩溃次数和发生崩溃的应用程序版本的附加信息。

于 2014-08-07T12:59:46.023 回答
1

在我的应用程序中,我创建了 LogWrapper 类,正如人们所料,它包装了 Log 调用。在每个方法中,我都在检查BuildCondig.DEBUG标志以确定我是处于调试模式还是发布模式。

此外,我的 LogWrapper 检查哪个方法正在调用并将其添加到 meassge,这通常不能直接使用 Log 类。

如果应用程序处于调试模式,我将日志调用传递给 Log 类,否则我将日志调用传递给 3rd 方库,在我的例子中是Crashlytics。还有更多的崩溃工具,例如Hockeyapp也是推荐的平台。

于 2014-08-07T13:07:21.890 回答