基于Android5.0的Camera Framework源码分析 (四) --- 框架总结

766 阅读1分钟

前言

从之前的几篇文章,可以基本弄清楚 Camera从APK,经过framework的衔接,与HAL层进行交互,最终通过驱动完成Camera的一些动作。

Camera层次分析

  • APP层
  • Framework层
  • HAL层

大致的框架图如下

框架图

从图中可以看到几个关键的地方:

  1. APP从JAVA层过渡到CPP层中间通过JNI层的android_hardware_Camera.cpp文件实现,文件中主要涉及从java方法到cpp函数的映射关系,方便作出对应的处理;
  2. Camera交互对象,从开始连接过程中式Camera与CameraService,连接之后基本上就是Camera与CameraClient进行交互,这里注意到CameraClient是继承CameraService::Client的,而后者则是继承BnCamera,继承ICamera,Camera类中存在一个ICamera变量,就是这个内容;
  3. Camera类继承BnCameraClient,继承ICameraClient,这样就可以实现Camera与CameraClient的交互
  4. 至于CameraService与Camera底层库的交互,只是Camera HAL 层的模块加载是在CameraService中实现的,真正的HAL层的创建是在CameraClient的初始化过程中

内容比较的少,主要是总结前几篇文章。