发布时间:2026/7/15 21:02:41
CameraService 详解二(open camera) 前面介绍了camera service的初始化过程这里接着介绍open camera在camera service的流程。前面有介绍camera app的常用接口通过调用api2提供的opencamera接口调用到cameraservice来打开一个指定逻辑camera id的camera对象在camera service再进一步实现该接口 并逐层调用到更底层的provider和HAL那我们看一下具体在camera service这层 opencamera的调用flow。我们可以看到在Icameraservice的左边是camera app的调用flow这些接口跑在camera app的进程里最后通过connectDevice函数通过 Icameraservice的接口跨进程调用到cameraservice在cameraservice的connectDevice的接口里主要做了三件事1调用validateConnectLocked接口检查当前要打开的camera是否已经locked这里locked比如说检查是否该camera是否打开是否需要处理抢占的情况根据app的优先级抢占camera的使用2CheckPermissions接口则是检查当前clientcamera app的权限。3最后则是创建一个cameradeviceclient与app端的camera device一一对应。接着在cameradeviceclient的构造函数里又进一步创建了一个camera3device对象并调用它的initialize方法。创建的camera3device用来和providerManager和HAL的provider进行交互。在camera3device的initialize方法里最重要的会去调用到cameraprovidermanager方法的opensession方法 通过hidl跨进程调用到cameraprovider进程创建一个在cameraprovider进程里相对应的一个session对象该对象会callback回调到cameraservice 并进一步回传给camera app从而建立映射关系。这里涉及的类/对象调用关系如下整个的架构和流程都比较清楚包括后面的其他api2接口也是遵循这样的架构层层调用到HAL。

相关新闻

2026/7/15 21:02:41

Python网络CSV直读实战:HTTP控制、编码压缩与企业级健壮性

1. 项目概述:为什么“直接读取网络CSV”是每个数据从业者绕不开的基本功你有没有遇到过这样的场景:早上刚收到运营同事发来的链接,说“最新用户行为数据在这儿,快跑个分析”;或者在复现某篇论文时,作者只给…

2026/7/15 21:02:41

C语言实战:手搓进制转换器,实现十六进制与十进制的灵活互转

1. 为什么需要手动实现进制转换?在嵌入式开发和底层编程中,我们经常需要直接操作硬件寄存器或处理内存数据,这些场景下十六进制表示尤为常见。虽然C标准库提供了strtol和printf等现成函数,但手动实现转换算法能带来三个关键好处&a…

2026/7/15 20:57:41

《卡片添加至桌面》三、@ohos.file.storageStatistics使用指南

HarmonyOS ohos.file.storageStatistics(应用空间统计)使用指南摘要:本文详细介绍 HarmonyOS ohos.file.storageStatistics 模块的使用方法,涵盖存储容量统计 API 的属性说明、同步/异步调用方式、完整代码示例,以及在…

2026/7/15 22:03:11

AI 前沿日报 | 2026年07月15日

🔥 今日头条 1. DeepSeek 梁文锋身价飙至 360 亿美元,成 AI 公司领域新首富 根据最新彭博亿万富豪指数,DeepSeek 创始人梁文锋身价一日飙升 193 亿美元,达到 360 亿美元,登顶全球 AI 公司新首富。这一暴涨背后是 DeepS…

2026/7/15 22:03:11

C++友元与内部类:封装原则下的高效协作机制解析

1. 项目概述:为什么C需要“友元”和“内部类”?刚接触C面向对象编程时,封装(Encapsulation)这个概念会反复被强调:把数据(成员变量)和操作数据的方法(成员函数&#xff0…

2026/7/15 22:03:11

数字人+康复医学:魔珐星云让专业理疗师随时待命

项目简介 在健康意识日益增强、康复需求持续增长的今天,康复理疗工作面临着前所未有的挑战。康复人员需要制定个性化康复方案、指导患者训练、评估康复效果,同时还要应对慢性病管理和运动损伤修复的压力。传统康复方式依赖人工指导和经验判断&#xff0…

2026/7/15 21:58:10

树莓派3 APT软件包管理实战:避坑指南与稳定运维策略

1. 项目概述:树莓派3上用APT管理软件包,远不止敲两条命令那么简单 “树莓派3-配置-通过APT 安装和卸载软件包”——这个标题看起来平平无奇,像是新手教程里最基础的一节。但我在树莓派生态里摸爬滚打十年,带过三十多个教育项目、部…

2026/7/15 17:04:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/14 19:23:19

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/14 18:30:06

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/15 0:08:29

【LINUX】驱动

【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】

2026/7/15 0:08:29

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

🔍 数据简介 本次分享1982-2026年全国村级精度建筑轮廓矢量数据,覆盖全国各省市区县,到村级别精细,为2026年最新实时采集成果,非网传仅60/77个城市的老旧数据。 数据含带高度/不带高度双版本,单体建筑边界精…

2026/7/15 0:08:29

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

🔍 数据简介 本次分享1975-2026年全国高精度水系水路矢量数据,覆盖全国全域,包含河流、水系、水库、运河、湿地、冰川、沟渠等全类别水文要素。 数据集包含双层矢量图层,字段分类清晰、要素齐全,支持2013-2026逐年完整…

2026/7/15 13:36:32

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…