我从应用程序中的服务执行 Logcat。
commandLine = "logcat -v time -b main"
process = Runtime.getRuntime().exec(commandLine);
当它在任何 AVD 上运行时,它会捕获来自系统中运行的任何进程的所有日志消息。
当我通过复制 apk 并以正常方式安装应用程序在真实设备 (ASUS TF201) 中运行它时,它只捕获来 self 自己的应用程序的日志消息。
应用程序运行良好,没有崩溃,所有 Activity 都运行良好,甚至是启动和停止 logcat 的 Activity 。在 AVD 中运行和在设备中运行之间的唯一区别是缺少消息。我知道有丢失的消息,因为除了我的应用程序之外我还运行 aLogCat 并且 aLogCat 确实捕获了所有消息。
我错过了什么?
最佳答案
这应该始终是预期的行为,并且在 Jelly Bean 中得到了正确修复。每个应用程序应该只能访问与其自身进程相关的 logcat 信息。
在您的情况下,您需要以 root 身份运行命令以访问不属于您的应用程序的 logcat 消息。
-- 引用资料 --
希望这能满足你的好奇心。
关于Android Logcat 在模拟器中运行良好,在真实设备中运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165279/