【Android Camera2】Camera2系统源码5大模块

一、简介

本片文章主要正对Camera2源码分析做一次宏观的拆分和概览,后续会一小块一小块的进行源码讲解。

相关文章:

  1. Android Camera系列文章目录索引汇总
  2. Android Camera2 综述
  3. Camera2开源项目源码分析汇总
  4. 源码分析 —— Camera2Basic官方源码分析
  5. Android Camera架构设计详解

二、源码5大模块

Camera2的源码总共分为6大模块。如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j9kb9LSQ-1627209883385)(../../img/android_fwk_all.png)]

模块说明
应用框架App上层应用级别,使用 Camera 2 API 与相机硬件进行互动。内部会调用相应的 Binder 接口,以访问与相机互动的原生代码。
AIDL与 Camera关联的 binder 接口
原生框架NDK Camera,框架位于 frameworks/av/ 中,提供相当于 CameraDevice 和 CameraCaptureSession 类的原生类。
相机服务位于 frameworks/av/services/camera/libcameraservice/CameraService.cpp 下的相机服务是与 HAL 进行互动的实际代码。
HAL硬件抽象层定义了由相机服务调用、且您必须实现以确保相机硬件正常运行的标准接口

2.1 应用框架

源码位于frameworks/base/core/java/android/hardware/camera2/
在这里插入图片描述
分为几个Package:

  1. package android.hardware.camera2
  2. package android.hardware.camera2.extension
  3. package android.hardware.camera2.impl
  4. package android.hardware.camera2.marshal
  5. package android.hardware.camera2.params
  6. package android.hardware.camera2.utils

2.2 AIDL

源码位于 frameworks/av/camera/aidl/android/hardware/ICameraServiceListener.aidl
包含如下:

模块
CameraInfo.aidl
CameraSessionStats.aidl
CameraStatus.aidl
ICamera.aidl
ICameraClient.aidl
ICameraService.aidl
ICameraServiceListener.aidl
ICameraServiceProxy.aidl

3.3 原生框架

传送门

3.4 相机服务

传送门
在这里插入图片描述

3.5 HAL

传送门
在这里插入图片描述

三、总结

camera2的源码包含如上5个部分。具体的流程为Camera2上层应用框架通过AIDL接口远程调用到NDK C++层面。然后C++层面提供相应的CameraService并具体通过HAL定义的接口和相机硬件设备供应商进行交互。
后续会逐一进行拆解进行分析。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值