1.引入
最近在做Camera相关功能,有意无意想充分了解Camera系统层面的总体框架,且网上相关RK Camera HAL实现层流程链路相关资料不多,故挑选了Camera中最为常用的一个接口进行分析,即getCameraIdList接口。由APK层作为起点分析到和内核节点交互的全链路流程。这里先看下google 原生Camera框架的总体框图,如图1所示:
图1 Camera 总体系统框架
该总体框图可以以中间竖线作为分割,分出左右两大部分, 右侧部分是打开camera之前的一些基本信息获取,比如本文的API getCameraIdList即属于右侧部分,另外还有一些比如获取camera的基本信息能力也都是在右侧部分;左侧部分则是openCamera打开相机成功后,进行类似预览请求, 录像请求的流程。