@ThreadSafe public class CameraMetricsCollector extends SystemMetricsCollector<CameraMetrics>
The collector exposes camera open/close, preview open/close and error recording functions that
can be passed a Camera
or a CameraDevice
object and will track times accordingly.
- For Camera1, - Camera#open()
, Camera#open(int)
-> recordCameraOpen(Object)
- Camera#release()
-> recordCameraClose(Object)
-
Camera#startPreview()
-> recordPreviewStart(Object)
- Camera#stopPreview()
-> recordPreviewStop(Object)
- Camera.ErrorCallback#onError(int, Camera)
-> recordCameraError(Object)
- For Camera2, -
CameraDevice.StateCallback#onOpened(CameraDevice)
-> recordCameraOpen(Object)
-
CameraDevice.StateCallback#onClosed(CameraDevice)
-> recordCameraClose(Object)
-
CameraDevice.StateCallback#onError(CameraDevice, int)
-> recordCameraError(Object)
- CameraCaptureSession#setRepeatingRequest(CaptureRequest,
CameraCaptureSession.CaptureCallback, Handler)
-> recordPreviewStart(Object)
- CameraCaptureSession#close()
-> recordPreviewStop(Object)
- CameraDevice#close
-> recordCameraClose(Object)
Constructor and Description |
---|
CameraMetricsCollector() |
Modifier and Type | Method and Description |
---|---|
CameraMetrics |
createMetrics()
Creates an empty instance of the corresponding system metrics.
|
boolean |
getSnapshot(CameraMetrics snapshot)
Note that access to snapshot instances is not synchronized and must be taken care of
by the caller requesting getSnapshot.
|
void |
recordCameraClose(java.lang.Object camera) |
void |
recordCameraError(java.lang.Object camera) |
void |
recordCameraOpen(java.lang.Object camera) |
void |
recordPreviewStart(java.lang.Object camera) |
void |
recordPreviewStop(java.lang.Object camera) |
public boolean getSnapshot(CameraMetrics snapshot)
SystemMetricsCollector
getSnapshot
in class SystemMetricsCollector<CameraMetrics>
snapshot
- snapshot on which the data will be writtenpublic CameraMetrics createMetrics()
SystemMetricsCollector
Explicitly having this function available reduces a significant amount of boilerplate
createMetrics
in class SystemMetricsCollector<CameraMetrics>
public void recordCameraOpen(java.lang.Object camera)
public void recordCameraClose(java.lang.Object camera)
public void recordPreviewStart(java.lang.Object camera)
public void recordPreviewStop(java.lang.Object camera)
public void recordCameraError(java.lang.Object camera)