- 博客(5)
- 收藏
- 关注
原创 CameraProvider详解一(初始化)
在创建了CameraProvider之后,就是调用它的初始化initialize方法,首先我们知道camera实际是一个硬件device,这里camera的初始化也是会调用硬件的统一接口hw_get_module来获取到camera 在HAL的一个具体module的实现,这里的实现一般会在Camera HAL的定义,在获取了这个camera module在Camera HAL的实现之后,把这个module作为参数在外面包装一个android定义的CameraModule类,封装以便统一对上层的接口。
2024-08-21 21:31:37 820
原创 Camera Service详解一(初始化)
2.2)调用ProviderInfo对象的初始化方法initialize,而在初始化方法里会去做一系列CameraProvider相关的操作:如上面调用流程中的解析provider的name,获取CameraProvider的代理,设置CameraProvider的回调函数,设置CameraService的vendorTag,向CameraProvider获取camera的list等等,当然有些概念会有些陌生,后面我们慢慢介绍。4)最后我们会去创建Flash相关的对象,以及枚举这些对象。
2024-08-20 22:02:21 589
原创 Camera framework 详解
那基于数据流的操作都会放在这个类里实现,比如每帧的请求,这里android的接口把预览、拍照、视频录制都认为是一帧帧的图像请求,所以不管图像数据最终请求方式如何,这里我们都可以认为是一次图像请求,当然在一次图像请求里,可以包含多条stream的图像帧数据,比如一次图像请求包含一帧preview预览的图像帧数据,还包括拍照的jpeg图像帧数据,还可以再包含录制的图像的一帧图像数据,当然这些图像帧都可以有不同的分辨率、帧数、图像质量。后面会继续对framework以下进行讲解。
2024-08-10 20:05:49 423
原创 Camera APP 详解
一般在onCreate方法里会做一些app的初始化动作,比如camera app的页面布局,加载一些camera 的信息,然后就是打开camera的预览画面了。1.首先camera app会有一个默认的camera去打开,首先app这边需要调用openCamera的接口去真正打开这样一个硬件设备,具体的实现会随着camera的架构一层一层调用到kernel里,kernel层里会对camera进行一系统上电,写寄存器等操作,这里就不多做详述,在讲述到kernel部分的时候会详细介绍。
2024-08-10 20:04:58 867
原创 Camera Overview
4)还有一些开发者是基于android开发一些基于不同平台的lib,就有了所谓的NDK开发,在这一层,开发者可以开发属于他们自己的lib,并且可以不用暴露自己的源代码,可谓是是一层安全性和隐私的保护。5)再往下是HAL层,也就是硬件抽象层,这层是google为了保护一些驱动厂商的知识产权,我们知道linux是开源的,kernel的代码需要公开化,一些公司需要保护自己的原始代码,则把这部分从kernel剥离开来,单独放到HAL层,并且可以屏蔽一些硬件差异化的问题。
2024-08-10 20:02:05 488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人