![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
xiaozi63
这个作者很懒,什么都没留下…
展开
-
深入理解Android相机体系结构之八
高通KMD框架详解概览利用了V4L2可扩展这一特性,高通在相机驱动部分实现了自有的一套KMD框架,该框架通过V4L2标准方法在系统中创建设备节点,将控制接口直接暴露给UMD CSL进行访问,而其内部主要定义了一系列核心模块,包括CRM(Camera Request Manager),用于管理整个KMD的Session/Link的创建销毁以及Request的在子设备间的流转,该模块创建video0设备节点暴露关键接口给UMD,此外还包括了Sync模块,主要负责了UMD/KMD之间的数据同步与传输,创建vi原创 2020-07-15 11:08:47 · 15154 阅读 · 17 评论 -
深入理解Android相机体系结构之六
CamX-CHI 框架结构概览回顾高通平台Camera HAL历史,其实不难发现之前高通采用的是QCamera & MM-Camera架构,但是为了更精细化控制底层硬件(Sensor/ISP等关键硬件),同时方便手机厂商自定义一些功能,现在提出了CamX-CHI架构,由于在CamX-CHI中完全看不到之前老架构的影子,所以它完全是一个全新的架构,它将一些高度统一的功能性接口抽离出来放到CamX中,将可定制化的部分放在CHI中供不同厂商进行修改,实现各自独有的特色功能,这样设计的好处显而易见,那便原创 2020-07-15 11:08:19 · 34504 阅读 · 29 评论 -
深入理解Android相机体系结构之十一
手机相机的未来与发展Android相机发展至今,通过开发者对框架的不断优化,算法人员对图像处理算法的不断提升,硬件工程师对硬件性能地不断调教,换来了在某些领域完全可以媲美专业相机的成像效果,这些成绩是有目共睹的,但是我们不能仅仅着眼于过去,试着将眼光放得长远些,如何将Android相机推向更高的维度,使其成为手机相机的王者,想必这是每一个热衷于技术的开发者都需要反复思考的问题,当然就我个人而言,对于它的未来,有着我自己的思考。Android相机,首先是基于Android系统,所以对于系统端的优化,我相信原创 2020-07-15 11:09:22 · 4472 阅读 · 1 评论 -
深入理解Android相机体系结构之十
安卓相机架构总结Android 相机体系庞大且复杂,在我刚开始接触到该框架的时候,如盲人摸象一般,一点一点地在代码的世界中探索,在很长的一段时间内,都只能局限于某一个特定的区域,而且在解决问题的过程中,虽然通过对代码的深入梳理,最终都会顺利解决难题,但是到最后依然缺乏一个对于整个框架的理解,正如管中窥豹一般,只见细节而无法把握全貌。但是进入现在的公司之后,通过与相机前辈的沟通,我发现框架思维能力尤为重要,针对整个框架结构需要做到掌控全局,这样在遇到问题的时候便可以迅速定位,此时再进行代码层面的深入研究,发原创 2020-07-15 11:09:11 · 6534 阅读 · 9 评论 -
深入理解Android相机体系结构之九
Camera Hardware相机的硬件层,作为整个框架的最底层,通过硬件模块接收来自客观世界的真实光影效果,将其转换为计算机所熟知的数字信号,并按照一定的数据格式向上源源不断提供成稳定并成像效果优秀的图像数据,整个部分复杂且高效,可以说是,一个优秀的硬件基础,就好比为整个相机框架的地基,拥有一个好的地基,便使得建造一座摩天大厦成为可能,接下来我们来详细介绍下,这部分各个组件的基本情况。基本硬件结构而今的相机硬件系统纷繁复杂,但是如果仔细深入研究的话,你会发现,其实核心组件无外乎镜头、感光器、图像处理原创 2020-07-15 11:09:00 · 10560 阅读 · 2 评论 -
深入理解Android相机体系结构之七
Camera Driver相机驱动层位于HAL Moudle与硬件层之间,借助linux内核驱动框架,以文件节点的方式暴露接口给用户空间,让HAL Module通过标准的文件访问接口,从而能够将请求顺利地下发到内核中,而在内核中,为了更好的支持视频流的操作,早先提出了v4l视频处理框架,但是由于操作复杂,并且代码无法进行较好的重构,难以维护等原因,之后便衍生出了v4l2框架。按照v4l2标准,它将一个数据流设备抽象成一个videoX节点,从属的子设备都对应着各自的v4l2_subdev实现,并且通过me原创 2020-07-15 11:08:33 · 10196 阅读 · 5 评论 -
深入理解Android相机体系结构之五
Camera Provider始于谷歌的Treble开源项目,基于接口与实现的分离的设计原则,谷歌加入了Camera Provider这一抽象层,该层作为一个独立进程存在于整个系统中,并且通过HIDL这一自定义语言成功地将Camera Hal Module从Camera Service中解耦出来,承担起了对Camera HAL的封装工作,纵观整个Android系统,对于Camera Provider而言,对上是通过HIDL接口负责与Camera Service的跨进程通信,对下通过标准的HAL3接口下发针原创 2020-07-15 11:08:04 · 16148 阅读 · 8 评论 -
深入理解Android相机体系结构之四
Camera ServiceCamera Service被设计成一个独立进程,作为一个服务端,处理来自Camera Framework 客户端的跨进程请求,并在内部进行一定的操作,随后作为客户端将请求再一次发送至作为服务端的Camera Provider,整个流程涉及到了两个跨进程操作,前者通过AIDL机制实现,后者通过HIDL机制实现,由于在于Camera Provider通信的过程中,Service是作为客户端存在的,所以此处我们重点关注AIDL以及Camera Service 主程序的实现。Ca原创 2020-07-15 11:07:48 · 11838 阅读 · 3 评论 -
深入理解Android相机体系结构之三
Camera App相机应用处于整个框架的上层,在现实生活中,为了满足各式各样的应用场景,会加入很多业务处理逻辑,但是一旦当我们拨开繁杂的业务逻辑,便会发现其核心部分依然是通过调用谷歌制订的一系列Camera Api接口来完成的,而所有的相机行为都包含在该接口中。起初,相机系统采用的是Camera Api v1接口,它通过一个Camera 类以及该类中的几个标准方法来实现整个相机系统的预览、拍照以及录像功能,控制逻辑比较简单,同时也比较容易理解,但也正是这种简单,导致了它无法逐帧控制底层硬件,无法通过元原创 2020-07-15 11:07:34 · 14261 阅读 · 5 评论 -
深入理解Android相机体系结构
序言Android系统自2007年底被Google推出问世以来,已经走过13个春夏秋冬,历经多次的大大小小的迭代重构、架构调整,虽然时代年轮依旧滚滚,虽然每年技术依然在不断地推陈出新,但是到目前为止,依然可以窥见其接口与实现相分离的核心设计理念,所以其架构设计的优越性可见一斑,另外,随着智能手机的快速普及,面对这一庞大终端市场,作为系统中最重要的几个组件之一的相机系统也必定会作为主要战场在手机市场中与其它厂商展开竞争。近几年,谷歌针对相机框架体系进行了多次迭代优化,就而今的相机框架而言,整体架构设计十分优原创 2020-07-15 11:06:31 · 39437 阅读 · 12 评论 -
深入理解Android相机体系结构之二
安卓相机架构概览Android系统利用分层思想,将各层的接口定义与实现分离开来,以接口作为各层的脉络连接整体框架,将具体实现的主导权交由各自有具体实现需求的平台厂商或者Android 开发者,这样既做到把控全局,也给予了众多开发者足够大的创作空间,这体现出了一个优秀的开源系统应有的胸怀和远见。其中,谷歌根据职能的不同将Camera框架一共划分成了五层,分别是App、Service、Provider、Driver以及Hardware,下面的Camera的整体架构图很清晰地显示出了其五层架构以及相互的关联接口原创 2020-07-15 11:07:20 · 18778 阅读 · 6 评论 -
深入理解Android相机体系结构之一
相机简史几千年来,人类主要通过文字以及绘画的方式记录着对于客观世界的认知,为了更直观地呈现客观世界的图景,摄影技术应运而生。摄影是一门光与影的艺术,通过透镜将光线导入并依靠其折射特性,将光线最终导向到感光器件中,而感光器件在收到光线刺激之后进行一定的转换,进而形成影像,而这一系列的硬件设备的组合统一被称之为相机系统,同时由于现代计算机科学的迅猛发展,该系统依托其强大的传播力,彻底改变和提升了人类感知客观世界的方式和速度。与现在相比,早期的相机系统十分简陋,同时成像效果也一直是灰白色调为主,但随着技术的不原创 2020-07-15 11:06:55 · 9596 阅读 · 0 评论