当前位置: 首页 > news >正文

Android图形系统框架解析

前言

Android图形系统对于开发者来说可能会比较难以理解,因为涉及的东西可能会计较多,比如Android自己的图形系统。OpenGL,视频编解码器,SurfaceFlinger,FrameBuffer等等。下面我们结合官方文档,介绍一下图形系统架构,主要侧重APP层。

正文

图形系统比较容易让人熟悉的是surface,官方文档如下:

Surface 是一个接口,供生产方与消耗方交换缓冲区

通俗的说,他就是一个图形队列,把生产方和消费方链接在一起。
下面讲解
在这里插入图片描述
这里就比较号理解,图形生产者就是播放器,摄像机,Android的图形系统(包括ndk和自定义view),以及OpenGL(vukan)。
这里有个特别的技巧,生产者可以叠加,比如播放器输出的图像,可以进入OpenGL,可以处理,叠加图形元素,进而输出。所以生产者也有可能是其他的消费者。层次结构大概如下
带动效的播放器图像传输图

我们继续分析官方的图片,我们现在了解了图像生产者。下面分析native FrameWork。这个东西是控制图像传输的关键,其实就是surface封装的实现。Surface.cpp 是对Surface.java 等封装,里面存着GLConsumer。可以请求真的生产者声场更多的图像,可以收到图形生产者的数据。在和SurfaceFlinger相互通讯。

而数据消费者这里比较明确是SurfaceFlingure。其实还有录像机或者图片保存器。这里不再详细介绍。

至于SurfaceFingure和hwc,这里就不在详细介绍,这个暂时超出我的认知,以后有空详细介绍。

以后希望分析三个部分surfaceView。surface。解码器。结合实际情况,深入了解。

todo

以后补充SurfaceFlinger、HWC和window是相关知识。

后记

写了这篇文章后,忽然发现我写的都在官方文档中,但是不仔细思考,确实很难理解官方文档。以后最好可以结合几篇文章,更深入理解

相关文章:

  • 探秘阿里云EBS存储:云计算的存储基石
  • Qt蓝图式技能编辑器状态机模块设计与实现
  • day09——Java基础项目(ATM系统)
  • ARINC653系统架构
  • Stroke-based Cyclic Amplifier (SbCA方法):实现图像任意尺度超清放大
  • 聊聊GPIO 工作模式
  • 英飞凌推出ASIL-B等级并具唤醒功能的第三代3D霍尔传感器TLE493D-x3系列
  • 服务器如何从http升级到https(nginx)
  • day02-Docker
  • B站 XMCVE Pwn入门课程学习笔记(4)(不断更新)
  • 计算机网络:(四)物理层的基本概念,数据通信的基础知识,物理层下面的传输媒体
  • 不同系统修改 Docker Desktop 存储路径(从C盘修改到D盘)
  • FPGA基础 -- Verilog 行为级建模之过程性结构
  • 【深度学习】卷积神经网络(CNN):计算机视觉的革命性引擎
  • 从0开始学习R语言--Day27--空间自相关
  • Vue.js 按键修饰符详解:提升键盘事件处理效率
  • Vue添加图片作为水印
  • 24.分页查询
  • 26.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--角色权限管理
  • Python Peewee库连接和操作MySQL数据库
  • 漳州网站制作/seo广告优化
  • 党员建设网站/免费下载百度
  • mt4外汇网站建设/123网址之家
  • 贵阳公司网页网站建设/网络精准营销推广
  • 浏阳网站建设/国内看不到的中文新闻网站
  • 做产品封面的网站/友链交易平台