0

デフォルトのビューには次のものがあります。

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): トレース開始: '/mnt/sdcard/PosLogistics.trace' 976562KB

このスレッドによると: Traceview maximum record time? トレースはデバイス RAM によって制限されます。Motorolla の 900 ms について説明するかもしれませんが、Galaxy と Xperia の問題点は何ですか?

4

1 に答える 1

2

1000000000トレース バッファにバイト~ 1GB を割り当てようとしています。そんなことを許してくれるシステムはないと思います。ディスク用ではなく、インメモリバッファサイズ用です。

vm/Profile.cppの 383 行目を参照してください。

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

バッファサイズの指定をスキップします。これにより、デフォルトで8MBになり、ニーズには十分なはずです.

于 2013-03-01T13:26:37.253 に答える