【问题标题】:Android Logcat works fine in emulators, not fine in real deviceAndroid Logcat 在模拟器中运行良好,在真实设备中运行不佳
【发布时间】:2013-03-01 19:23:01
【问题描述】:

我从应用程序中的服务执行 Logcat。

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

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

应用程序运行良好,没有崩溃,所有活动都正常工作,甚至是启动和停止 logcat 的活动。在 AVD 中运行和在设备中运行之间的唯一区别是缺少消息。我知道缺少消息,因为我在我的应用程序之外运行 aLogCat,并且 aLogCat 确实捕获了所有消息。

我错过了什么?

【问题讨论】:

    标签: android logging android-logcat


    【解决方案1】:

    这应该始终是预期的行为,并且在 Jelly Bean 中得到了正确修复。每个应用程序应该只能访问与其自己的进程相关的 logcat 信息。

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

    -- 参考资料--

    SO Question

    Discussion

    Android issue

    aLogCat User comments

    希望这能满足您的好奇心。

    【讨论】:

    • 你如何解释 aLogCat 确实捕获所有消息? ::: 听起来不对,因为 logcat 用于调试,没有人可以向您保证您的应用程序中的问题仅是您自己的应用程序的结果 ::: logcat 显示所有内容以允许您调试更有意义适当地。无需植根设备,这很愚蠢。
    • @ilomambo 好吧,您有权发表自己的意见,但是免费访问 logcat 是一个主要的安全漏洞,无意中泄露了很多信息。
    • 所以如果我得到一个“内存不足”异常我只能在我自己的应用程序中寻找原因吗? ::: 此外,您的断言绝对不正确,正如我所说,免费下载和开源的应用程序 aLogCat 确实捕获 Jelly Bean 中的所有消息,您愿意解释一下吗?
    • 它不应该在 Jelly Bean 上工作,除非你已经 root 并且已经将应用程序作为系统应用程序。
    • 男孩,这是一个 Kafka 线程 :::: 非常感谢您为帮助我所做的努力,我真的非常感谢。但你显然错了,这不仅仅是我的意见。事实上,我在华硕 TF201 上安装了一个应用程序,在 Jelly Bean 上运行,名为 aLogCat,它显示来自所有进程的所有消息,这只是我没有编造的事实。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多