0

Logcat によると、私のアクティビティ (カメラを使用する) の開始は非常に遅くなります。

08-21 21:51:56.672: I/ActivityManager(488): Displayed com.blabla/.activities.TakePhotoActivity: +1s472ms

そこで、メソッド プロファイリングを使用して、問題がどこにあるかを確認することにしました (これは、遅いアクティビティが開始される場所です)。

public void onClick(View v) {
    Debug.startMethodTracing();
    Intent intent = new Intent(getApplicationContext(), TakePhotoActivity.class);
    startActivity(intent);
    overridePendingTransition(R.anim.enter_from_right, R.anim.exit_to_left);
}

そして、TakePhotoActivity の onResume で次のように呼び出します。

protected void onResume() {
    super.onResume();
    cameraView.onResume();
    Debug.stopMethodTracing();
}

しかし、驚いたことに、Traceview には 260 ミリ秒のメソッド呼び出ししか表示されないため、どこかで 1 秒以上失われています。

この間に何が起こっているかを知るにはどうすればよいですか?

4

1 に答える 1

1

これは、Android アプリケーションでトレース ビューを使用する方法に関する優れたチュートリアルです。それを実行して、どのサブ メソッドが時間の損失を引き起こしているかを確認してください。時間の使用状況を視覚的に表現しています。

于 2014-09-01T04:16:28.747 に答える