[RK3399][Android7.1] 调试笔记 --- 如camera API版本使用确认

Platform: rk3399
OS: Android 7.1
Kernel: v4.4.83

Camera API版本分V1和V2两个版本。

Camera API1
Android 4.4 及更低版本设备上的应用级相机框架,通过 android.hardware.Camera 类提供。
Camera API2
Android 5.0 及更高版本设备上的应用级相机框架,通过 android.hardware.camera2 包提供。

 Android 5.0 已弃用 Camera API1,而且随着新平台开发的重点放在 Camera API2 上,Camera API1 会逐渐被淘汰。
 但是,该淘汰期限将会很长,而且 Android 版本将会在一段时间内继续支持 Camera API1 应用。具体来说,将继续为以下内容提供支持:

  • 应用的 Camera API1 接口。在 Camera API1 之上构建的相机应用应该与运行早期 Android 版本的设备一样工作。
  • Camera HAL 版本。包括对 Camera HAL1.0 的支持。

也就是说虽然API1要被淘汰,但为了做兼容,应用还是可以使用的。使用API1还是API2通过判断当前Moudle API决定。这个行为在获取属性流程时会判断当前支持的API版本:

supportsCamera2ApiLocked -> 判断是否支持Camera2即API2
    supportsCameraApiLocked ->
      cameraService.supportsCameraApi ->
        CameraService::supportsCameraApi -> CameraService.cpp
          getDeviceVersion -> //获取device version
            CameraService::getDeviceVersion ->
              mModule->getModuleApiVersion ->
                mModule->common.module_api_version  //module_api_version的就是HAL_MODULE_INFO_SYM@CameraHal_module.cpp中的version_major变量,
                                                    //最终值是CAMERA_DEVICE_API_VERSION_1_0

在rk3399平台上Camera使用的是HAL1,因此Camera API使用的是V1版本。

参考:
Android Camera2学习笔记
android.hardware.camera2
相机版本支持
Android.Camera2相机超详细讲解

你可能感兴趣的:(RK3399,子类__Camera)