Camera 由上到下1

主Activity,com.android.camera/com.android.camera.Camera.java

Camera继承ActivityBase

ActivityBase 使用Util.java 文件的方法:
   DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService(
                Context.DEVICE_POLICY_SERVICE);

获取CameraManager.CameraProxy 实例mCameraDevice。

所有和硬件交互的操作在App层的接口都由mCameraDevice提供。

mCameraDevice.takePicture(a,b);  --------  拍照

mCameraDevice.startPreviewAsync();  ---  预览图片

通过代码追踪

A:拍照流程:

com.android.camera.Camera.java    com.android.camera.CameraManager.java         android.hardware.Camera.java  

mCameraDevice.takePicture(a,b)  ---->           takePicture(a,b,c,d)        --------->       takePicture(shutter, raw, postview, jpeg);  在这个方法里进行Java本地调用。

B:预览图片流程:

com.android.camera.Camera.java            com.android.camera.CameraManager.java         android.hardware.Camera.java  

mCameraDevice.startPreviewAsync()  ---->           startPreviewAsync();       --------->                startPreview()    在这个方法里进行Java本地调用。

接下来研究JNI部分的实现。

猜你喜欢

转载自wcq20071334.iteye.com/blog/1777695
今日推荐