Android traceview无法正常工作或仅记录900毫秒?

时间:2013-03-01 13:15:14

标签: android trace

在我的默认视图中,我有:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Debug.startMethodTracing(Environment.getExternalStorageDirectory()+"/PosLogistics.trace", 1000000000);

并在此处停止:

protected void onStop()
    {
        super.onStop();
        Debug.stopMethodTracing();
    }

android目标是2.2。在Motorolla 2.3上运行时,我可以追踪900毫秒。在Samsung Galaxy(4.0)和Sony Xperia(4.0)上运行时,应用程序会在启动时立即关闭。 logcat的最后一个条目是

02-15 05:25:19.940:I / dalvikvm(8740):TRACE STARTED:'/ mnt / sdcard /PosLogistics.trace'976562KB

根据这个帖子:Traceview maximum record time?跟踪受设备RAM的限制。可能会解释Motorolla 900毫秒,但是Galaxy和Xperia有什么问题?

1 个答案:

答案 0 :(得分:2)

You are trying to allocate 1000000000 bytes〜1GB用于跟踪缓冲区。我认为任何系统都不允许你这样做。它用于内存缓冲区大小,而不是磁盘。

请参阅vm/Profile.cpp第383行。

state->buf = (u1*) malloc(bufferSize);

跳过给出缓冲区大小。这将默认为8MB,应该足以满足您的需求。

相关问题