微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么通过 ADB 的 logcat 与系统 logcat 不同?

如何解决为什么通过 ADB 的 logcat 与系统 logcat 不同?

我有一个使用以下命令生成 logcat 的应用程序:

logcat -d -v time -t 1620059528.0 *:W

但是,它的输出与我通过控制台运行完全相同的命令时得到的输出不同

adb logcat -d -v time -t 1620059528.0 *:W

日志开始的时间不同,一个比另一个大很多,输出也不同。

这是为什么?在此处运行 Android 11。

编辑:我通过

调用logcat
 Process process = Runtime.getRuntime().exec("logcat -d -v time -t 1620059528.0 *:W");

这是否只打印正在运行的包中的 logcat?

解决方法

是的,出于安全原因,自 Android 4.1 起,应用只能访问自己的日志。

这在 this Android StackExchange answer 中进行了扩展,其中还提到如果您拥有设备,您可以(据称,在 2013 年)获得完整的设备日志访问权限:

adb shell pm grant <pkg> android.permission.READ_LOGS

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。