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
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