2013-03-01 60 views
3

我在我的应用程序中执行Logcat服务。Android Logcat在模拟器中正常工作,在实际设备中不好用

commandLine = "logcat -v time -b main" 
process = Runtime.getRuntime().exec(commandLine); 

当它在任何AVD上运行时,它捕获系统中运行的任何进程的所有日志消息。
当我通过复制apk并以正常方式安装应用程序在真实设备(ASUS TF201)中运行它时,它只捕获来自我自己的应用程序的日志消息。

该应用运行良好,没有崩溃,所有活动都能正常工作,即使是启动和停止logcat的活动。 AVD运行和设备运行之间的唯一区别就是缺少的信息。我知道缺少消息,因为除了我的应用程序以外,我还运行了一个LogCat,并且aLogCat确实能够捕获所有消息。

我错过了什么?

回答

1

这应该始终是预期的行为,并正确地固定在果冻豆。每个应用程序只能访问与自己的进程相关的logcat信息。

在你的情况下,你需要以root身份运行该命令来访问不属于你的应用程序的logcat消息。

- 参考 -

SO Question

Discussion

Android issue

aLogCat User comments

希望这满足你的好奇心。

+0

你如何解释aLogCat确实能够捕获所有消息? :::这听起来不对,因为logcat用于调试,没有人能向你保证,你的应用程序中的问题只是你自己的应用程序的结果:::它更有意义的是,logcat显示了一切,让你调试正常。无需根植您的设备,这很愚蠢。 – ilomambo 2013-03-01 19:49:38

+0

@ilomambo那么你有权接受你的意见,但是自由访问logcat是一个主要的安全漏洞,无意中造成了很大的损失。 – PravinCG 2013-03-01 19:52:29

+0

因此,如果我收到“内存不足”异常,我只能在自己的应用程序中查找原因? :::另外,你的断言肯定是不正确的,正如我所说的,应用程序aLogCat可以免费下载,而且开放源代码,在Jelly Bean中捕获所有消息,你是否在意解释? – ilomambo 2013-03-01 20:11:35

相关问题