Camera API比较

API1

Camera

Parameters

CameraInfo

API2

主要类

CameraManager

CameraDevice

CameraCharacteristics

CameraCaptureSession

CaptureRequest

CaptureResult

补充

  • CameraDevice里说明:API的选择和当前device的等级有关!只有在支持FULL级别的设备上才能完全发挥Camera2的特性
  • OneCameraFeatureConfig设置了当前device用的哪个API,支持哪些features.

Contains the logic for which Camera API and features should be enabled on the current device.

 

API的选择

/frameworks/av/camera/aidl/android/hardware/ICameraService.aidl

75    /**
76     * Open a camera device through the old camera API
77     */
78    ICamera connect(ICameraClient client,
79            int cameraId,
80            String opPackageName,
81            int clientUid, int clientPid);
82
83    /**
84     * Open a camera device through the new camera API
85     * Only supported for device HAL versions >= 3.2
86     */
87    ICameraDeviceUser connectDevice(ICameraDeviceCallbacks callbacks,
88            String cameraId,
89            String opPackageName,
90            int clientUid);
91

思考

API和硬件到底什么关系?硬件不同,暴露的接口不一样,应用的行为是不一样的。

 

References

camera api1 和api2

dev分支上是基于API2,切换module为PhotoModule,value=12(为什么切换module会影响value?目前还不清楚);
hal1分支上是基于API1,切换module,value一直是12。

packages/app/Camera2/src/com/android/camera/one/config/OneCameraFeatureConfigCreator.java

hal1上true,说明用的CaptureModule
dev上false,说明用的PhotoModule
看看有没有用Camera.setSharpness


android 5,6,7,8
android L,M,N,O
Level   21,


//Camera2和snapdragoncamera2的包名
package:/system/app/Camera2/Camera2.apk=com.android.camera2
package:/system/priv-app/SnapdragonCamera/SnapdragonCamera.apk=org.codeaurora.snapcam

猜你喜欢

转载自blog.csdn.net/yuki_q/article/details/84302125