📸 HAL层Camera详解 30章 · 从入门到精通

🎯 友好色系
🧩 HAL3 / HAL1 · V4L2 · ISP Pipeline ⭐ 点击卡片跳转对应章节 (01.html ~ 30.html)
1
Android Camera HAL架构演进 · HAL3 vs HAL1核心区别 · HAL层在Camera系统中的位置与作用
2
V4L2框架简介 · /dev/video*节点创建与权限 · Sensor驱动与ISP驱动交互
3
HAL_MODULE_INFO_SYM解析 · open()入口 · camera_module_t与camera_device_t初始化
4
静态/动态获取摄像头数量 · 多摄像头计数逻辑 · 常见实现陷阱
5
camera_info_t填充 · 朝向/闪光灯/分辨率 · 多摄像头信息管理
6
camera_module_t → camera_device_t · ops表注册 · 打开硬件节点
7
fd打开/复用/关闭策略 · 多进程fd管理 · selinux权限影响
8
Sensor上电序列 · MCLK/Reset/GPIO · I2C初始化 · PLL锁定等待
9
stream_type定义 · 分辨率/格式协商 · ISP管线参数 · Stream复用拆分
10
camera_metadata_t结构 · Tag/Value存储 · 静态与动态metadata生成
11
capture_request_t / result_t生命周期 · Frame Number递增 · Buffer Handle传递
12
Request入队 · ISP参数更新 · Sensor参数更新 · Frame Start触发
13
gralloc buffer申请/释放 · Dequeue/Enqueue · Buffer Deadlock案例分析
14
清空未处理Request · 等待硬件停止 · 异常超时处理
15
停止Stream · 释放Buffer · Power down Sensor · 关闭节点 · 清理内存
16
Sensor下电序列 · GPIO拉低 · Clock关闭 · I2C总线释放 · 电源域关闭
17
打开失败 · I2C超时 · ISP初始化失败 · Buffer分配失败等异常场景
18
双摄/多摄资源竞争 · 同步锁机制 · 独立Power rail管理
19
CameraService Binder通信 · HIDL vs Treble接口变化
20
ALOGV/ALOGD/ALOGI/ALOGE规范 · 关键节点打点 · 性能Log技巧
21
打开速度优化(预加载/延迟初始化) · 关闭异步释放 · 内存碎片管理
22
反复打开关闭1000次 · 压力测试资源泄漏 · Monkey测试配合
23
不同Sensor厂商(Sony/OV/Samsung)驱动差异 · 平台(Qualcomm/MTK)适配
24
SELinux策略 · 权限检查流程 · Treble安全要求
25
Cuttlefish/模拟器测试 · Mock Sensor驱动 · CTS/VTS要求
26
Camera无法打开 · 黑屏 · 资源未释放 · 多摄切换卡顿
27
ioctl命令 · V4L2_CID自定义Control · ISP Subdev使用
28
ISP Pipeline配置 · 3A参数传递 · RAW/YUV处理路径
29
Sensor寄存器读写 · OTP/EEPROM读取 · 模式切换(Preview/Capture/Video)
30
MIPI CSI-3 · C-PHY/D-PHY演进 · Compute Camera · AI ISP对HAL层的影响