Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用跟踪方法测量活动开始时间不准确?_Android_Optimization_Android Traceview - Fatal编程技术网

Android 使用跟踪方法测量活动开始时间不准确?

Android 使用跟踪方法测量活动开始时间不准确?,android,optimization,android-traceview,Android,Optimization,Android Traceview,根据Logcat的说法,我的活动(使用摄像头)开始得很慢: 08-21 21:51:56.672: I/ActivityManager(488): Displayed com.blabla/.activities.TakePhotoActivity: +1s472ms 因此,我决定使用方法评测来查看问题所在(这是慢速活动开始的地方): 在TakePhotoActivity的onResume中,我称之为: protected void onResume() { super.onResum

根据Logcat的说法,我的活动(使用摄像头)开始得很慢:

08-21 21:51:56.672: I/ActivityManager(488): Displayed com.blabla/.activities.TakePhotoActivity: +1s472ms
因此,我决定使用方法评测来查看问题所在(这是慢速活动开始的地方):

在TakePhotoActivity的onResume中,我称之为:

protected void onResume() {
    super.onResume();
    cameraView.onResume();
    Debug.stopMethodTracing();
}
但是,令我惊讶的是,Traceview只显示了260毫秒的方法调用,所以我在某处损失了超过1秒钟


如何找出这段时间发生了什么?

是一个关于如何在Android应用程序上使用跟踪视图的很好教程。只需运行它并检查哪些子方法导致了时间损失。它可以很好地直观地表示时间使用情况。

这当然来自对
Camera.open()
的调用。可以肯定的是,从DDMSI guess Debug.startMethodTracing(“示例”)获取systrace跟踪,然后Debug.stopMethodTracing()需要一些时间,以便ActivityManager显示更多秒数。
protected void onResume() {
    super.onResume();
    cameraView.onResume();
    Debug.stopMethodTracing();
}