1
▸
请用一句话说明 CameraService 在 Android 相机架构中的角色,并简述它主要管理哪些对象?
2
▸
HAL1 与 HAL3 的主要区别是什么?为什么现在主推 HAL3?
3
▸
CameraCharacteristics 是什么?应用通常在什么时候获取,框架如何提供?
4
▸
请简述 Android 图形 buffer 管理与 gralloc 的基本概念,以及它和相机 stream 的关系。
5
▸
打开相机时框架做了哪些权限与使用前的校验?
6
▸
什么是 configure_streams?为什么说它是相机 pipeline 建立的「分水岭」?
7
▸
在 camera metadata 中,android.control.* 这组 tag 大致承载什么职责?列举几个你常接触的。
8
▸
相机预览的 OpenGL/Vulkan 渲染在框架层处于什么位置?为什么框架本身通常不直接旋转预览?
9
▸
请描述 ICameraService 这个 Binder 接口在相机打开流程中的作用,以及它和 ICameraDeviceUser 的关系。
10
▸
CameraDeviceClient 在框架中承担什么职责?它和更上层的 CameraDeviceImpl 如何配合?
11
▸
configure_streams 时框架有哪些关键校验规则?常见的配置失败原因有哪些?
12
▸
3A(AF/AE/AWB)在框架层是怎样从应用到 HAL 再回到应用的?
13
▸
CameraProviderManager 是什么?它如何与 HAL 端的 CameraProvider 建立连接并完成设备枚举?
14
▸
HAL3 中一次 capture request 与对应的 result 是如何在框架与 HAL 之间流转的?请讲清方向。
15
▸
Android 如何支持多 Client 并发使用相机?concurrent camera 与普通并发有何不同?
16
▸
CameraCaptureSession 的 reconfigure 与 close 流程在框架层分别做了什么?
17
▸
Treble 下,Camera 子系统的 HIDL 与后来的 AIDL 分别扮演什么角色?为什么要向 AIDL 演进?
18
▸
Android 12+ 的摄像头/麦克风使用指示器(隐私绿点)在相机框架层是如何触发的?
19
▸
相机录像时 MediaCodec 与相机框架如何衔接?编码链路是什么?
20
▸
从框架角度看,影响相机 preview 流畅度与 shutter lag(拍照延迟)的主要因素有哪些?