当前位置: 首页 > news >正文

Android Camera相关类功能整理

1.Camera Java相关类

代码目录:frameworks/base/core/java/android/hardware/camera2/

CameraManager:camera系统服务管理类,用于监测、获取特征值和连接Camera设备。

CameraManager.CameraManagerGlobal:全局camera Manager实例,维护和CameraService连接,并分发camera 通知给注册的回调。

CameraDevice:代表单个camera已经连接Android设备,允许图像捕捉和高帧率后处理控制。

CameraDevice.StateCallback:设备状态抽象类,用于camera设备状态的更新。

CameraDeviceImpl:CameraDevice实现类,HAL2.1+版本以上支持。
CameraCaptureSession:CameraDevice配置捕获会话类,用于捕捉Camera图像或图像捕捉再处理。
CameraCaptureSession.StateCallback:捕获会话抽象类,用于camera设备捕获会话状态的更新。
CameraCaptureSessionImpl:CameraCaptureSession实现类,用于会话创建和会话命令处理。

2.Camera Native相关类

代码目录:frameworks/av/services/camera/libcameraservice/

                  hardware/interfaces/camera/provider/2.4/default/

CameraService:Java-native通信的枢纽,向上提供camera的基本信息查询,向下和CameraProviderManager交互获取camera状态。
CameraService.StatusListener:CameraProviderManager交互类,用于接收设备状态变化或模式变化。
CameraService.BasicClient:Camera API1接口类。
CameraService.Client:Camera API1接口类。
CameraService.ClientEventListener:用于CameraClientManager中对camera设备管理。
CameraService.CameraClientManager:管理当前使用的cameraDevice。
CameraService.CameraState:Camera相关信息和依赖关系,用于冲突决策。
CameraService.UidPolicy:Camera设备Uid策略相关,camera连接时使用。

CameraDeviceClient::实现和Java层的CameraDevice进行Binder通信。
CameraDeviceClientBase:CameraDeviceUser的实际实现类,向上对接CameraDevice。
Camera2ClientBase:模板类,用于创建Camera3Device。
Camera3Device:Camera设备命令的实际处理类。
CameraDeviceBase:帧生成基类,定义Camera设备通用接口。
ICameraDeviceCallback:CameraDevice回调处理接口,用于接收camera命令处理结果。
Camera3Device.HalInterface:legacy/hidl hal命令接口调用适配类。
Camera3Device.CaptureRequest:请求信息封装类。
Camera3Device.RequestThread:数据请求命令封装线程类。
Camera3Device.PreparerThread:数据流准备相关类。
Camera3Device.RequestBufferStateMachine:内部类,RequestBuffer状态管理类。
Camera3OutputStream:管理camera device单个输出流。
Camera3OutputUtils:Camera3Device/Camera3OfflineSession共享方法类,用于处理HAL回调。

CameraDeviceSession:CameraDevice会话类,用于和HAL层数据交互处理。
camera3_callback_ops:Hal层回调结构体,Hal层处理结果通过当前类回调给Native,定义参考camera.cpp文件中的camera3_callback_ops定义。
CameraDeviceSession.ResultBatcher:处理request请求结果,并将结果给CameraDevice。
CameraDevice:CameraDevice Hal实现类,调用CameraModule/CameraDeviceSession和Hal层交互。
CameraProviderManager:管理android设备上所有可用的camera providers,枚举providers和设备并监听provider和设备的添加及移除,提供单个设备信息查询。
CameraProviderManager.HardwareServiceInteractionProxy:provider service查询和通知注册相关类。
CameraProviderManager.StatusListener:device/torch状态变化监听类。
CameraProviderManager.ProviderInfo:provider信息封装类。
CameraProviderManager.DeviceInfo:通用camera设备接口类。
CameraProviderManager.DeviceInfo3:Hal3特定camera设备接口类。
CameraProvider_2_4:CameraProvider模板类,用于provider service注册。
LegacyCameraProviderImpl_2_4:CameraProvider封装类,加载Hal库相关Module。
camera_module_callbacks_t:Hal库相关Module方法模板。
CameraModule:Hal库相关Module方法封装库,封装camera_module_t。

相关文章:

Android Camera相关类功能整理

1.Camera Java相关类 代码目录:frameworks/base/core/java/android/hardware/camera2/ CameraManager:camera系统服务管理类,用于监测、获取特征值和连接Camera设备。 CameraManager.CameraManagerGlobal:全局camera Manager实例&#xff…...

3、Git分支操作与团队协作

Git分支操作 1.什么是分支2. 分支的好处3. 分支的操作3.1 查看分支3.2 创建分支3.3 切换分支3.4 修改分支3.5 合并分支3.6 产生和解决冲突 4. 创建分支和切换分支图解5. Git团队协作机制团队内协作跨团队协作 均在git bash中进行操作。事先建好本地工作库 1.什么是分支 在版本…...

Linux网卡配置

一、网卡配置 1、目录参数 /etc/syscofig/network-scripts/ifcfg-e*** /etc 目录时Linux系统的配置文件,有相对权限的用户能修改目录,但普通用户都可以访问。 sysconfig /etc/sysyconfig目录包含了Linux的系统配置文件 network-scripts network-scripts…...

wireshark access/trunk/hybrid报文分析

1,access接口 发送带vlan的报文 wireshark交换机配置 [Huawei-GigabitEthernet0/0/1] [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 100 [Huawei-GigabitEthernet0/0/2]port link-type access [Huawei-Gig…...

C++ Primer Plus----第十二章--类和动态内存分布

本章内容包括:对类成员使用动态内存分配;隐式和显式复制构造函数;隐式和显式重载赋值运算符;在构造函数中使用new所必须完成的工作;使用静态类成员;将定位new运算符用于对象;使用指向对象的指针…...

清理 Oracle Arch 目录中的日志文件

清理Oracle Arch目录中的文件需要遵循以下步骤: 1、登陆Oracle数据库服务器:确保你有权限访问Oracle数据库服务器,并且能够登录到服务器操作系统。 ssh 192.168.1.200 su - oracle2、启动RMAN(Recovery Manager)&…...

PicGo+GitHub搭建免费图床

PicGoGitHub搭建免费图床 步骤 1: 安装 PicGo步骤 2:创建图床仓库步骤 3: 配置 GitHub Token步骤 4: 配置 PicGo步骤 5: 上传图片步骤 6: 访问图片 使用 GitHub 作为图床的优势在于免费、稳定且具有版本控制功能,特别适合个人博客、小型项目等。PicGo作为一个开源的…...

免费在线客服软件推荐:经济实用的客户沟通解决方案

好用的在线客服软件是企业是必不可少的工具,他让企业流程更流畅高效,让客户服务更完善优质。市场上的在线客服软件有很多,说着免费使用的软件也不在少数。今天小编就来推荐一款免费在线客服软件。 不过,我们选择免费在线客服软件…...

leetcode344. 反转字符串

题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s ["h&quo…...

【js自定义鼠标样式】【js自定义鼠标动画】

文章目录 前言一、效果图二、实现步骤1. 去除原有鼠标样式2. 自定义鼠标样式3. 使用 总结 前言 自定义鼠标形状,自定义鼠标的动画,可以让我们的页面更加有设计感。 当前需求:吧鼠标自定义成一个正方形,鼠标的效果有:和…...

Linux开发工具——gdb篇

Linux下调试工具——gdb 文章目录 makefile自动化构建工具 gdb背景 gdb的使用 常用命令 总结 前言: 编写代码我们使用vim,编译代码我们使用gcc/g,但是我们,不能保证代码没问题,所以调试是必不可少的。与gcc/vim一样&…...

spring状态机

1、概述 Spring State Machine 是一个用于处理状态机逻辑的框架,它提供了一种简洁的方法来定义状 态、转换以及在状态变更时触发的动作。 概念 状态 ( State ) :一个状态机至少要包含两个状态。例如自动门的例子,有 …...

K8S异常处理

一、概述 1、k8s有时候会报错The connection to the server ip:6443 was refused - did you specify the right host or port ,本文档提供几种可能产生该报错的原因和排障思路。 二、发现问题 使用任意Kubectl 命令会报错:The connection to the serv…...

【挑战全网最易懂】深度强化学习 --- 零基础指南

深度强化学习介绍、概念 强化学习介绍离散场景,使用行为价值方法连续场景,使用概率分布方法实时反馈连续场景:使用概率分布 行为价值方法 强化学习六要素设计奖励函数设计评论家策略学习与优化 算法路径深度 Q 网络 DQN演员-评论家算法&…...

WPF RelativeSource

RelativeSource 类在 WPF 中提供了以下几种模式&#xff1a; RelativeSource Self&#xff1a;指定当前元素作为相对源。可以在当前元素的属性中绑定到自身的属性。 示例&#xff1a; <TextBlock Text"{Binding Text, RelativeSource{RelativeSource Self}}" /&…...

centos 安装 配置 zsh

centos 编译安装 zsh 和 配置 oh-my-zsh 下载 wget https://jaist.dl.sourceforge.net/project/zsh/zsh/5.9/zsh-5.9.tar.xz依赖 yum install ncurses-devel安装zsh 执行&#xff1a; tar -xvf zsh-5.9.tar.xz cd zsh-5.9 ./configure --prefix/usr/local/zsh5.9 make &am…...

git 常用基本命令, reset 回退撤销commit,解决gitignore无效,忽略记录或未记录远程仓库的文件,删除远程仓库文件

git 基本命令 reset 撤销commit https://blog.csdn.net/a704397849/article/details/135220091 idea 中 rest 撤销commit过程如下&#xff1a; Git -> Rest Head… 在To Commit中的HEAD后面加上^&#xff0c;点击Reset即可撤回最近一次的尚未push的commit Reset Type 有三…...

Vue Echarts 多折线图只有一条X轴(合并X轴数据并去重排序) - 附完整示例

echarts&#xff1a;一个基于 JavaScript 的开源可视化图表库。 目录 效果 一、介绍 1、官方文档&#xff1a;Apache ECharts 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 echarts 2、指定容器并设置容器宽高 3、数据处理&am…...

WPF+Halcon 培训项目实战(6):目标匹配助手

文章目录 前言相关链接项目专栏模板匹配助手简单使用金字塔级别参数自动选择应用插入代码 总结 前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享&#xff0c;想要源码…...

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; 2.2 VG (Volume Group&#xff0c;卷组&#xff09; 2.3 LV (Logical Volume&#xff0c;逻辑卷&#xff09; 3. 常用的磁盘命令 4. 查看系统信息的命…...

dnSpyEx终极指南:5个技巧快速掌握.NET程序调试与编辑

dnSpyEx终极指南&#xff1a;5个技巧快速掌握.NET程序调试与编辑 【免费下载链接】dnSpy Unofficial revival of the well known .NET debugger and assembly editor, dnSpy 项目地址: https://gitcode.com/gh_mirrors/dns/dnSpy 还在为调试没有源代码的.NET程序而烦恼&…...

Cesium实战:GeoJSON面数据贴地加载与边界线精准绘制方案

1. 问题背景&#xff1a;GeoJSON面数据贴地加载的边界线消失现象 第一次用Cesium加载GeoJSON面数据时&#xff0c;我遇到了一个让人抓狂的问题——当开启clampToGround: true实现贴地效果后&#xff0c;原本清晰的边界线突然消失了。这就像给地图蒙上了一层半透明的纱&#xf…...

Git多用户代理架构解析:实现细粒度权限管理与统一访问入口

1. 项目概述&#xff1a;从单兵作战到团队协作的代码管理跃迁如果你是一个独立开发者&#xff0c;或者在一个小团队里&#xff0c;你可能习惯了把代码往GitHub、Gitee这样的平台上一扔&#xff0c;设置个私有仓库&#xff0c;然后通过个人账号的SSH密钥来管理访问权限。这种方式…...

轨道交通条形屏电源技术分析:超薄化与高可靠性的工程平衡

一、行业背景与技术挑战在智慧城轨建设中&#xff0c;地铁站内条形屏是乘客信息显示系统的核心终端设备。该应用场景对配套电源提出以下技术要求&#xff1a;技术需求具体指标工程挑战超薄化整机厚度3-8mm传统变压器/散热器高度难以压缩高可靠性MTBF≥50000小时轨道交通振动、温…...

Docker 部署 SpringBoot 项目超详细教程

Docker 部署 SpringBoot 项目超详细教程一篇适合新手的 Docker 部署 SpringBoot 实战教程&#xff0c;包含&#xff1a; Docker 安装镜像加速SpringBoot 打包Dockerfile 编写构建镜像容器部署日志查看防火墙开放常见问题解决 图文并茂&#xff0c;保姆级教学。本文假设你已拥有…...

企业级AI智能体评测平台AgentLab:构建、评估与部署实战指南

1. 项目概述&#xff1a;当AI遇上企业级自动化最近在折腾企业级自动化流程时&#xff0c;发现了一个非常有意思的开源项目&#xff0c;叫AgentLab。它来自大名鼎鼎的ServiceNow&#xff0c;没错&#xff0c;就是那个做IT服务管理&#xff08;ITSM&#xff09;和企业工作流平台的…...

Python异步编程中的上下文管理:Ctxo工具的设计原理与实战应用

1. 项目概述&#xff1a;一个轻量级、高可用的上下文管理工具最近在折腾一个需要处理大量异步任务和复杂状态流转的后台服务&#xff0c;遇到了一个老生常谈但又很棘手的问题&#xff1a;如何在不同的函数调用、异步协程之间&#xff0c;安全、高效地传递和共享一些“上下文”信…...

data-prep-kit:Python数据预处理工具包,自动化清洗、特征工程与流水线构建

1. 项目概述与核心价值最近在数据科学和机器学习社区里&#xff0c;一个名为data-prep-kit的项目开始引起不少同行的注意。如果你经常和数据打交道&#xff0c;无论是做数据分析、构建模型&#xff0c;还是搭建数据管道&#xff0c;你肯定对“数据准备”这个环节又爱又恨。爱的…...

低成本搭建BLE嗅探器:基于nRF52840与Wireshark的物联网协议分析实战

1. 项目概述与核心价值如果你正在开发或调试基于蓝牙低功耗&#xff08;BLE&#xff09;的物联网设备&#xff0c;比如智能手环、传感器节点或者任何通过蓝牙通信的小玩意儿&#xff0c;那么你肯定遇到过这样的困境&#xff1a;设备明明发了数据&#xff0c;手机App却没收到&am…...

树莓派网络配置全攻略:从有线到无线,新手到进阶

1. 项目概述&#xff1a;为什么网络配置是树莓派的第一课刚拿到一块崭新的树莓派&#xff0c;看着它小巧的主板和闪烁的指示灯&#xff0c;你脑子里想的可能是立刻跑个酷炫的Python项目&#xff0c;或者搭建一个家庭媒体中心。但别急&#xff0c;在这一切开始之前&#xff0c;有…...