Android 使用跟踪方法测量活动开始时间不准确?
根据Logcat的说法,我的活动(使用摄像头)开始得很慢: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
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();
}