android 界面显示过程分析

Posted qcjd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 界面显示过程分析相关的知识,希望对你有一定的参考价值。

 android 系统提供了一系列的绘图渲染api,这些api支持2D绘图和3D绘图;那么理解这些api是如何工作的,还是十分重要的。应用开发者最常用的就是Canvas和OpenGL,Canvas侧重于2D,而OpenGL则是全能。Canvas的绘图操作最终会通过OpenGLRender进行转换,转换为OpenGL支持的动作,并由GPU渲染;也就是说Canvas也是通过OpenGL库工作的。

  无论你使用哪种api,这些操作最终还是会渲染到Surface上。Surface代表了生产者,负责生产BufferQueue;与它对立的是作为消费者的SurfaceFlinger。

下面的图讲述了主要部件的工作流程。

技术分享图片

 

 

Image Stream Producers

  图像生产者:任何生成graphics buffer的组件,包括但不限于Canvas,OpenGL,多媒体服务,视频解码器。

Image Stream Consumers

  图像消费者: 这个图像流消费者一般指的是SurfaceFlinger系统服务,SurfaceFlinger负责组织可视Surface,并修改Display,只有SurfaceFlinger可修改DisPlay。OpenGL ES app比如相机程序,carmera也可以消耗图像流。

Window Manager

  负责管理系统中的Window,Window manager由Surface支持实现,Window Manager将元数据发动到SurfaceFlinger。

Hardware Composer

  用来展示子系统的硬件抽象层,SurfaceFlinger可以帮助OpenGL 和GPU做已经明确的,组合数据的工作,这样就能减轻GPU和OpenGL的工作,这样会更省资源和电量。SurfaceFlinger工作还是利用OpenGL ES,相当于OpenGL ES 客户端。

Gralloc

  graphics memory allocator 绘制内存生成器

以上是关于android 界面显示过程分析的主要内容,如果未能解决你的问题,请参考以下文章

Android WIFI 分析

Android P 显示流程分析---界面刷新

Android APP应用启动过程分析

Android APP应用启动过程分析

Android P 显示流程分析---界面刷新

android系统启动框架Activity界面显示过程详解