4

Debug.startMethodTracing()默认情况下使用 8MB 的“缓冲区大小”。我有很多关于这个缓冲区的问题。

  1. 如果缓冲区填满,是否会引发错误,或者它是否只是停止记录?
  2. 无论写入多少数据,缓冲区是否保持固定的 8MB?
  3. 如果我手动指定bufferSize参数,单位是什么?字节?兆?
  4. 我尝试将缓冲区大小增加到 20MB 左右,然后应用程序退出。我需要记录大约 20 秒的实时计算。有没有办法记录超过 20MB 左右的数据?我假设它首先存储在内存中,否则将其存储到 SD 卡中没有问题。
4

1 回答 1

6

我进行了一些测试,发现:

  1. 如果缓冲区已满,则会显示以下“信息”级别 LogCat 消息:TRACE STOPPED (NOTE: overflowed buffer): writing X records

  2. 缓冲区在 0 到 8MB 之间,具体取决于写入的数据量。

  3. bufferSize参数以字节为单位指定。

  4. 要增加模拟设备内存的数量,请打开 AVD 管理器并编辑您的虚拟设备。单击新硬件按钮并选择设备内存大小。在我的机器上,我可以输入的最大容量是 1GB(值 1000)。

于 2012-05-17T20:26:59.710 回答