相机open camera启动浅析

上篇说了,camera 的基本架构组成,这篇就谈谈open camera。

camera open的时间是在cameraActivity onResume, 模式resume时进行,经过camera id的获取,handle,cameraPoxy的初始化,cameraManager.openCamera(handler, cameraId, cb)这里的cb为CameraAgent.CameraOpenCallback。

经过上述的流程,camera数据由app层,走到java framework。

在framework经;

openCamera-->openCameraForUid-->openCameraDeviceUserAsync(String cameraId,

            CameraDevice.StateCallback callback, Handler handler, final int uid)

经上述流程数据到native framework,之后再到hal。。。

上层怎么知道camera是否打开?通过他CameraDevice.StateCallback callback,这个callback有三个方法:

public void onOpened(CameraDevice camera)

给上层返回CameraAgent.CameraOpenCallback.onCameraOpened(mCameraProxy),camera成功打开。

public void onDisconnected(CameraDevice camera)

public void onError(CameraDevice camera, int error)

上述流程就是站在java的角度看open camera。


你可能感兴趣的:(camera)