版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiyanlgu/article/details/80693707
1. 前言
Camera2是Google在Android 5.0中全新设计的框架,相机模块是和硬件紧密相关的,Camera2中引入很多的特性,厂商的支持情况各有差异,所以Google定义了硬件兼容级别,方便开发者参考。
Google想的很好,但现实是高通,MTK,厂商压根就没支持。
2. 定义
Android Camera2根据硬件的兼容情况定义四种级别:
硬件兼容性:LEGACY < LIMITED < FULL < LEVEL_3
- LEGACY devices operate in a backwards-compatibility mode for older Android devices, and have very limited capabilities.
- LIMITED devices represent the baseline feature set, and may also include additional capabilities that are subsets of FULL.
- FULL devices additionally support per-frame manual control of sensor, flash, lens and post-processing settings, and image capture at a high rate.
- LEVEL_3 devices additionally support YUV reprocessing and RAW image capture, along with additional output stream configurations.
具体定义如下:
INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3;
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2;
INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1;
INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0;
笔者忍不住吐槽了,Google这个定义当初是怎么确定下来的,太坑爹了,所以所以笔者把这几个值重新定义了:
//LEGACY < LIMITED < FULL < LEVEL_3
int MESDK_HW_CHECK_LEVEL_LEGACY = 0;
int MESDK_HW_CHECK_LEVEL_LIMITED = 1;
int MESDK_HW_CHECK_LEVEL_FULL = 2;
int MESDK_HW_CHECK_LEVEL_3 = 3;
/**
* 映射Android CameraCharacteristics值设定
* INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3;
* INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2;
* INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1;
* INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0;
*/
int[] CameraHWLevelMESDK2Android = {2, 0, 1, 3};
int[] CameraHWLevelAndroid2MESDK = {1, 2, 0, 3};
哎……最后还有“但是”:
但是我们测试发现大部分机型硬件兼容级别都是LEGACY,包括Redmi Note 4
(!_!)
红米Note 4是小米公司于2016年8月25日联合中国移动发布千元旗舰新标杆机