1. 高通Camx架构概述
高通Camx架构是高通公司为Android平台开发的相机软件架构,全称为Camera Experience。这个架构的设计初衷是为了更精细化地控制底层硬件(如Sensor、ISP等关键硬件),同时方便手机厂商进行功能定制化开发。
在Camx架构中,高通将功能划分为两个主要部分:
- CamX:包含高度统一的功能性接口
- CHI(Camera Hardware Interface):提供可定制化的部分
这种设计的最大优势在于,即使开发者对CamX核心架构了解不深,也能通过CHI模块方便地添加自定义功能,大大降低了开发门槛。
2. HAL与CHI交互机制
2.1 动态库加载机制
CamX和CHI通过动态库(.so文件)互相加载对方的功能模块,这是整个交互机制的基础:
-
CamX加载CHI:
- 通过
dlopen加载com.qti.chi.override.so - 使用
dlsym映射出CHI入口方法chi_hal_override_entry - 将
CHIAppCallbacks结构体传入CHI,CHI会将本地方法地址回填
- 通过
-
CHI加载CamX:
- 通过
dlopen加载camera.qcom.so - 使用
dlsym映射出CamX入口方法ChiEntry - 将
ChiContextOps结构体传入CamX,CamX会回填本地方法地址
- 通过
这种双向绑定机制确保了双方都能调用对方提供的接口,同时保持了模块间的松耦合。
2.2 接口映射实现
在实际交互中,关键的接口映射包括:
-
CamX提供给CHI的接口:
process_capture_result:处理拍照结果notify:事件通知- 这些接口通过
CHIAppCallbacks结构体暴露给CHI
-
CHI提供给CamX的接口:
chi_override_process_request:处理拍照请求chi_initialize_override_session:初始化会话- 这些接口通过
ChiContextOps结构体暴露给CamX

——从HAL到CHI的交互机制与实现细节&spm=1001.2101.3001.5002&articleId=155158265&d=1&t=3&u=95f1036a75ac477f80f221a19fdaccf4)
1万+

被折叠的 条评论
为什么被折叠?



