Android_Camera HAL和API组合情况使用
主要是针对 HAL1 HAL3 与 API1 API2 两两组合
直接来张图看看
Android在版本更新和迭代过程中, Camera相关代码也经历了几个版本的更新, 主要表现为Camera HAL版本更新(HAL1 -> HAL2 -> HAL3), Camera API版本更新(Camera API1 -> Camera API2), 由于Android版本是向后兼容的, 所以为了解决兼容问题, 势必要做一些特殊的处理来保证不同版本调用问题, 本文主要说明 Camera HAL1, Camera HAL3, API1, API2之间的调用关系, 由于Camera HAL2只是一个过渡版本, 并且实际上并没有使用, 所以不做讨论.
说明: Camera API1泛指 android.hardware.camera 包下的相关API, Camera API2泛指
android.hardware.camera2 包下的相关API.
HAL版本和Java API版本是否能交叉调用?
由于HAL版本有HAL1和HAL3, Java API有 API1和API2. 两两组合调用就要4种方式, 那么这4种方式在Android中是否都有其使用场景呢?
答案是肯定的, 即4种组合(API1 -> HAL1, API1 -> HAL3, API2 -> HAL1, API2 -> HAL3)在Android系统中都能正常调用, 根据Android系统HAL层支持情况和API使用情况不同, 就会出现上述四种组合的使用场景, 下面就具体介绍一下4种组合是在那种情况下使用到的, 以及基本实现原理.
版本转换以及代码位置
对于Google最初的设计初衷, Ca