在我的默认视图中,我有:
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有什么问题?
答案 0 :(得分:2)
You are trying to allocate 1000000000
bytes〜1GB用于跟踪缓冲区。我认为任何系统都不允许你这样做。它用于内存缓冲区大小,而不是磁盘。
请参阅vm/Profile.cpp第383行。
state->buf = (u1*) malloc(bufferSize);
跳过给出缓冲区大小。这将默认为8MB,应该足以满足您的需求。