Android Camera

一、Android Camera的架构设计

1、参考的网址

1.1、Android Camera官网框架网址

摄像头  |  Android Open Source Project

1.2、Android12平台camera源码参考网址

camera - OpenGrok cross reference for /frameworks/av/camera/

1.3、Android camera2 NDK开发指南

Camera  |  Android NDK  |  Android Developers

基于NDK开发的camera应用,运行在Android12的虚拟机上:

f795056d37cd47d8bc7d6a491b8864f3.png

1.4、Android camera2 基于framewrok.jar开发接口指南

android.hardware.camera2  |  Android Developers

1.5、 Android camera2 基于framewrok.jar开发指南

Camera2 概览  |  Android media  |  Android Developers

2、Android Camera 的概述

Android 的相机硬件抽象层 (HAL) 可将 Camera 2 中较高层级的相机框架 API 连接到底层的相机驱动程序和硬件。

相机子系统包括相机管道组件的实现,而相机 HAL 可提供用于实现您的这些组件版本的接口。

3、Android Camera 的架构图

相机架构:

30bbea8edc074513b15673afd087c2c5.png

3.1、应用框架

应用代码位于应用框架级别,它使用 Camera 2 API 与相机硬件进行互动。在内部,此代码会调用相应的 Binder 接口,以访问与相机互动的原生代码。

3.2、AIDL 层代码(framework层的Java)

与 CameraService 关联的 binder 接口可在 frameworks/av/camera/aidl/android/hardware 中找到。

生成的代码会调用较低级别的原生代码以获取对实体相机的访问权限,并返回用于在框架级别创建 CameraDevice 并最终创建 CameraCaptureSession 对象的数据。

frameworks/base/core/java/android/hardware/camera2 代码生成为 framework.jar

aeadb51ac42646c98187f5761fc7e4e0.png

frameworks/base/core/jni/Android.bp 全部生成为 libandroid_runtime.so

9005586e03df4a14af60b503ae187197.png

50c9340f0e71446d8d8c2a2248489f5a.png

3.3、native 层(C++)

frameworks/av/camera/Android.bp

15b6a6ae4a264959a1205a66d59db094.png

ee898e53d3784c5a929f73d3a6cb6ecc.png

3.4、binder IPC 接口

IPC binder 接口用于实现跨越进程边界的通信。调用相机服务的若干个相机 binder 类位于 frameworks/av/camera/camera/aidl/android/hardware 目录中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值