尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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。
RELATED

相关推荐

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

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

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

📅 2026/9/8 0:43:40
C语言实战:手搓进制转换器,实现十六进制与十进制的灵活互转

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

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

📅 2026/9/12 13:01:22
《卡片添加至桌面》三、@ohos.file.storageStatistics使用指南

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

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

📅 2026/9/12 14:05:02
MORE NEWS

更多资讯

📰

随机森林回归实战:从MSE分裂到P10/P90预测区间

简介:随机森林回归的MATLAB实现资源,主要面向需要完成回归预测、变量筛选与特征重要性评估的数据分析人员及机器学习初学者。资源基于集成学习原理,涵盖从数据预处理、模型构建到结果评估的完整流程,可借助TreeBagger或fitrensemb…

📰

鸿蒙记事本开发:ArkTS+Stage模型实战指南

简介:这是一份基于鸿蒙OS(HarmonyOS)开发的记事本应用完整源码项目,面向计算机类专业学生、初学者及嵌入式/移动开发入门者,适用于毕业设计、课程设计、项目演示或二次开发参考。资源包含127个文件,主体为3…

📰

YOLO葡萄检测实战:小样本标注数据集部署产线拣选

简介:本资源是一份专为YOLO系列目标检测算法(兼容YOLOv5/v7/v8/v9/v10/v11)定制的葡萄图像数据集,面向计算机视觉初学者、农业AI应用开发者及模型训练实践者,解决葡萄成熟度识别、病害检测与品质分级等实际场景中的小样…

📰

YOLOv8-visbody行人检测工程实践:监控场景小目标优化与边缘部署

简介:本资源是一套基于YOLOv8的行人检测完整实现方案,面向计算机视觉初学者、AI算法工程师及智能监控系统开发者,聚焦实时场景下的高精度行人定位与识别需求,适用于安防监控、自动驾驶感知模块开发等实际应用。压缩包共15个文件&a…

📰

Spring Boot自定义配置管理器设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Zulip 密码强度策略解析:PASSWORD_MIN_GUESSES 阈值设计与 zxcvbn 实战应用

Zulip 密码强度策略解析:PASSWORD_MIN_GUESSES 阈值设计与 zxcvbn 实战应用 【免费下载链接】zulip Zulip server and web application. Open-source team chat that helps teams stay productive and focused. 项目地址: https://gitcode.com/GitHub_Trending/zu…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬