深入理解Android Camera架构八-总结 Posted on 2024-10-26 总结在整个Android相机系统架构中,不难发现接口与实现相分离的这一简单设计原则在其身上随处可见,这样既保证了整体架构的足够稳定,也实现了系统细节实现的多样性,同时也体现出了强大的灵活性。 历时1年多,通过工作之外的时间,学习了Android Camera整体的架构,从应用,Framework,H ... Read more »
深入理解Android Camera架构七-硬件层 Posted on 2024-10-20 一、简介相机的硬件层,作为整个框架的最底层,通过硬件模块接收来自客观世界的真实光影效果,将其转换为计算机所熟知的数字信号,并按照一定的数据格式向上源源不断提供成稳定并成像效果优秀的图像数据,整个部分复杂且高效,可以说是,一个优秀的硬件基础,就好比为整个相机框架的地基,拥有一个好的地基,便使得建造一座 ... Read more »
深入理解Android Camera架构六-高通KMD Posted on 2024-08-20 一、概览利用了V4L2可扩展这一特性,高通在相机驱动部分实现了自有的一套KMD框架,该框架通过V4L2标准方法在系统中创建设备节点,将控制接口直接暴露给UMD CSL进行访问,而其内部主要定义了一系列核心模块,包括CRM(Camera Request Manager),用于管理整个KMD的Sessi ... Read more »
深入理解Android Camera架构五-驱动层V4L2 Posted on 2024-06-20 一、概览相机驱动层位于HAL Moudle与硬件层之间,借助linux内核驱动框架,以文件节点的方式暴露接口给用户空间,让HAL Module通过标准的文件访问接口,从而能够将请求顺利地下发到内核中,而在内核中,为了更好的支持视频流的操作,早先提出了v4l视频处理框架,但是由于操作复杂,并且代码无法 ... Read more »
深入理解Android Camera架构四-高通CamX-CHI Posted on 2024-04-20 一、概述回顾高通平台Camera HAL历史,之前高通采用的是QCamera & MM-Camera架构,但是为了更精细化控制底层硬件(Sensor/ISP等关键硬件),同时方便手机厂商自定义一些功能,现在提出了CamX-CHI架构,由于在CamX-CHI中完全看不到之前老架构的影子,所以它 ... Read more »
深入理解Android Camera架构三-硬件抽象层 Posted on 2024-03-20 一、概述始于谷歌的Treble开源项目,基于接口与实现的分离的设计原则,谷歌加入了Camera Provider这一抽象层,该层作为一个独立进程存在于整个系统中,并且通过HIDL这一自定义语言成功地将Camera Hal Module从Camera Service中解耦出来,承担起了对Camera ... Read more »
深入理解Android Camera架构二-服务层 Posted on 2024-02-20 一、概述Camera Service被设计成一个独立进程,作为一个服务端,处理来自Camera Framework 客户端的跨进程请求,并在内部进行一定的操作,随后作为客户端将请求再一次发送至作为服务端的Camera Provider,整个流程涉及到了两个跨进程操作,前者通过AIDL机制实现,后者通 ... Read more »
深入理解Android Camera架构一-应用层 Posted on 2024-01-20 相机应用处于整个框架的上层,在现实生活中,为了满足各式各样的应用场景,会加入很多业务处理逻辑,但是一旦当我们拨开繁杂的业务逻辑,便会发现其核心部分依然是通过调用谷歌制订的一系列Camera Api接口来完成的,而所有的相机行为都包含在该接口中。 起初,相机系统采用的是Camera Api v1接口, ... Read more »
Android视频基础知识 Posted on 2023-12-15 一、图像概念像素 像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中,你可以看到一个个方块,这些方块就是像素。 分辨率 图像(或视频)的分辨率是指图像的大小或尺寸。我们一般用像素个数来表示图像的尺寸。比如说一张1920x1080的图像,前者1920指的是 ... Read more »
Android音频基础知识 Posted on 2023-11-16 一、音频数据1.1 声音概念音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号的过程,我们人耳所能听到的声音频率范围为(20Hz~20KHz),因此音频文件格式的最大带宽是20KHZ。 声音有三个属性: 音调:声音频率的高低,表示人的听觉分辨一个声音的调子高低的程度。音调主要由声音的频率 ... Read more »
Android Framework接口开发总结 Posted on 2023-10-15 Android Framwork开发过程中,经常会遇到新增接口的需求,下面将介绍基本上所有需要用到的接口开发流程。 一、JNI接口在系统开发接口过程中,很多情况需要通过JNI接口的方式调用一些库或者驱动,通过Android studio的方式构建native工程比较简单,下面主要介绍在framewo ... Read more »
Android Framework学习总结 top | Posted on 2020-07-31 经过一段时间的学习,对于Android Framework大部分有一定的了解,现在将之前的学习进行总结并分类。 1.Android系统启动相关Android系统SystemServer启动(上) Android系统SystemServer启动(下) 开机广播BOOT_COMPLETED发送流程分析 ... Read more »
Android刷新机制-SurfaceFlinger原理 Posted on 2020-07-15 一、概述SurfaceFlinger作为负责绘制应用UI的核心,Android平台所创建的Window都是由surface所支持,所有可见的surface渲染到显示设备都是通过SurfaceFlinger来完成的。 SurfaceFlinger进程是由init进程创建,运行在独立的SurfaceFl ... Read more »
Android刷新机制-Choreographer原理 Posted on 2020-06-30 一、概述前面介绍了屏幕刷新机制中的view绘制原理,涉及到的Choreographer并没有深入其里面具体的操作,这一篇讲详细介绍Choreographer。Choreographer翻译成中文是编舞者的意思,在Android系统4.1开始加入这个类,主要来控制同步处理输入(input),动画(an ... Read more »
Android刷新机制-View绘制原理 Posted on 2020-06-10 一、概述本文将从startActivity开始讲解Android屏幕刷新机制,前面的文章有分析过startActivity的启动过程,这里将重点分析WMS相关的过程,从而了解Android屏幕刷新机制原理。前面介绍的startActivity启动过程的流程图如下: 二、View的绘制过程从启动过程 ... Read more »