Logcat -f 在前台服务中通过 Runtime.getRuntime().exec - 是什么导致它终止?

Logcat -f in foreground service via Runtime.getRuntime().exec - What is causing it to terminate?

我有一个壁挂式平板电脑,我为其开发了一个供个人使用的应用程序。由于它挂在墙上,从我的应用程序中获取一些日志有点痛苦。

我选择在我的前台服务中使用 运行 logcat -f 并将日志保存到平板电脑,以便稍后提取它们。

我正在使用简单的 logcatSaver = Runtime.getRuntime().exec("logcat -f " + logFile);.

执行它

通常会发生几分钟后,日志停止保存。我在执行之前/之后以及通常在我的前台服务中添加了一些日志记录点,它看起来与它自身的前台服务无关。它上升,保持上升,就像它应该的那样。我要补充一点,我的应用程序以及与前景相关的位都运行良好。所以不涉及硬崩溃。

我倾向于认为它 logcat -f 由于某种原因而中止。

关于为什么 logcat -f 会相当快地突然中止保存到我的目的地的任何想法?

根据我的简要阅读,这是与固件相关的。我在亚马逊平板电脑上遇到过这种情况,所以谁知道他们在做什么。

我是 android 开发的新手,但目前我已经通过在其自己的线程中启动 logcat -f 进程解决了这个问题,而不是通过 [= 直接转储到文件中11=] 我正在读取 stdout 的输出并将其保存到 android 端的文件中。如果 logcat 终止,我只是重新启动并继续追加到日志文件。

不理想,但它的作品。