32

我注意到 logcat 缓冲区的大小在不同的设备上有所不同。假设我在我的设备上有 root 权限,有没有办法在运行时更改主缓冲区的缓冲区大小?如果不是,那么假设我可以重建 Android 映像,我该如何在编译时更改它?我希望将其放大以用于诊断目的。

4

8 回答 8

21

“开发者选项”中的“记录器缓冲区大小选项”

它允许将大小更改为 64k 和 16M 之间的几个值。

adb logcat -g然后立即显示更新限制。

在 5.1.1 上测试,这个答案声称它是最近添加的。

于 2016-03-07T09:12:24.443 回答
16

设置日志环缓冲区的大小

adb logcat -G <size> 

附加 K 或 M 以指示千字节或兆字节

例子:adb logcat -G 512K

于 2017-05-26T11:05:49.370 回答
13

查看当前缓冲区大小

adb logcat -g

设置所有类型的缓冲区大小(main、system、crash)

adb logcat -G 16M # 16M can be replace by (128K ~ 16M)

设置特定类型的缓冲区大小(main、system、crash)

adb logcat -b system -G 8M # system can be replaced with 'main' or 'crash'
于 2019-06-24T04:51:20.677 回答
8

根据新闻组Android 开发者logcat 缓冲区大小

设备上的日志缓冲区为 64 KB。时间戳、进程 ID 和日志级别以紧凑格式存储,因此您实际上可能会从logcat -d -v <mode>.

于 2012-09-13T00:30:56.267 回答
3

缓冲区大小由内核决定,位于 */drivers/staging/android/logger.c 中。

使用哪些缓冲区以及大小随 Android 版本而变化。Android 3.0 (Honeycomb) 和更新版本也有一个系统缓冲区,这四个都是 256 KB。您必须重新编译内核才能更改它。

于 2014-01-12T10:08:11.057 回答
3

不,根据这里,设备上的日志缓冲区似乎是 64 KB。时间戳、进程 ID 和日志级别以紧凑格式存储,因此您实际上可能会从logcat -d -v <mode>.

另请参阅 Stack Overflow 问题Logcat 的大小限制是多少?.

无论如何,为了将日志保存在其他地方,您可以使用Reading and Writing Logs。那也许可以帮助你。

于 2012-09-13T00:31:44.080 回答
0

为了通过 adb 将特定 Android 设备的 logcat 缓冲区设置为 16Mb,我使用了:

adb -s 2615a1d4e3174a6e logcat -G 16M

但你可以只使用:

adb logcat -G 16M

或设置以前的缓冲区大小:

adb logcat -G 256K

于 2018-03-07T09:29:13.857 回答
0

您可以在属性文件 android-studio\bin\idea.properties 中增加idea.cycle.buffer.size=1024 的值。这对我有用。

于 2016-01-12T18:05:27.137 回答