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也可以消耗图像流。Hardware Composer
用来展示子系统的硬件抽象层,SurfaceFlinger可以帮助OpenGL 和GPU做已经明确的,组合数据的工作,这样就能减轻GPU和OpenGL的工作,这样会更省资源和电量。SurfaceFlinger工作还是利用OpenGL ES,相当于OpenGL ES 客户端。以上是关于android 界面显示过程分析的主要内容,如果未能解决你的问题,请参考以下文章