在关闭camera时耗时近6s。
日志分析
日志中存在如下异常:
03-04 16:58:14.180 9976 25944 E Camera3-Device: Camera 101: waitUntilDrainedLocked: Error waiting for HAL to drain: Connection timed out (-110)
03-04 16:58:14.231 9976 25944 D CameraTraces: Process trace saved. Use dumpsys media.camera to view.
03-04 16:58:14.232 9976 25944 E CameraDeviceClient: detachDevice: waitUntilDrained failed with code 0xffffff92
03-04 16:58:14.232 9976 25944 I Camera3-Device: disconnectImpl: E deviceId:101
03-04 16:58:14.232 9976 25944 E Camera3-Device: Camera 101: disconnectImpl: Shutting down in an error state
查看systrace发现flush和close调用都很快。waitUntilDrained耗时5s。上级调用为disconnect。

文章分析了在关闭Android相机时出现近6秒延迟的问题,主要由waitUntilDrained函数超时引起。日志显示存在连接超时错误和状态等待问题。在正常与异常日志对比中,发现异常情况下mInFlightMap不为0,表明问题可能出在camerahal的pipeline处理上。在pipeline分析中,发现错误的数据返回导致cameraserver关闭相机时等待超时。
1226

被折叠的 条评论
为什么被折叠?



