Android图形显示架构概览

图形显示系统作为Android系统核心的子系统,掌握它对于理解Android系统很有帮助,下面从整体上简单介绍图形显示系统的架构,如下图所示。

这个框架只包含了用户空间的图形组件,不涉及底层的显示驱动。框架主要包括以下4个图形组件。

1、图形流生产者

图形流生产者一般指的是各个应用,应用通过不同的方式生产出要显示的图形流。可以通过Skia、OpenGL ES等图形库绘制得到,也可以通过Camera拍摄得到,还可以通过Media Player解码得到。

图形流使用缓冲数据表示,图形流生产者通过Surface可以把缓冲数据直接传递到图形流消费者。

2、窗口位置管理

窗口位置管理由WindowManagerServiceWMS)完成。现代操作系统一般是多任务的系统,支持多个应用同时运行。当每个应用都需要显示界面时,如果没有窗口位置管理,就无法知道该显示哪个应用的界面。

窗口位置管理维护所有窗口的位置信息,包括窗口在屏幕中的位置、宽高、前后顺序、显示状态,这些信息称为窗口元数据(window metadata)。每当一个窗口的元数据发生了变化,会通知图形流消费者。

3、图形流消费者

图形流消费者负责处理图形缓冲,由SurfaceFlinger完成。对于图形显示而言,消费过程是将各个应用生产的图形数据进行汇总,根据窗口管理提供的窗口元数据将多个图形数据合成到帧缓冲(frame buffer)的过程。

帧缓冲保存的内容正是即将在屏幕中显示的图形数据,它通过硬件抽象层传递到显示屏幕。

4、硬件抽象层

硬件抽象层负责与底层驱动交互。硬件抽象层封装了与底层驱动交互的细节,对外提供简单的接口,有了硬件抽象层,图形消费者只需调用相关的接口即可与底层驱动进行交互,无须关心具体的交互细节。

在硬件抽象层有两个与图形显示系统相关的组件,分别是Gralloc和Hardware Composer,前者负责图形缓冲的分配,后者负责将图形缓冲的内容传递到底层驱动显示。

参考:

李先儒,《Android图形显示系统》,清华大学出版社。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/527650.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SRIO学习(3)使用SRIO IP核进行设计

文章目录 前言一、设计框图二、模块介绍三、上板验证 前言 本文将通过使用SRIO IP核实现数据通信,重点在于打通数据链路,具体的协议内容设计并非重点,打通了链路大家自己根据设计需求来即可。 一、设计框图 看了前面高速接口的一些设计&am…

【uniapp】开发微信小程序 — 注意事项

底部导航栏 (tabBar) 图标的正确做法: 1、图片的标准尺寸为 81px * 81px,该尺寸在官方的文档中有明确的说明,可以参考微信小程序全局配置文档中对 iconPath 属性的说明。 2、为了保持良好的间距,图片的内容区域设置 60px* 比较好&…

docker最简单教程(使用dockerfile构建环境)

一 手里有的东西 安装好的dockerdockerfile 二 操作 只需要在你的dockerfile文件下执行命令 docker build -t"xianhu/centos:gitdir" . 将用户名、操作系统和tag进行修改就可以了,这就相当于在你本地安装了一个docker环境,然后执行 docker…

【c 语言】结构体的概念

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

JAVAEE——网络初始

文章目录 网络发展史独立模式网络模式局域网LAN路由器的诞生 网络通信的基础IP地址端口号 认识协议OSI七层模型TCP/IP五层模型 网络发展史 独立模式 在原始的年代中电脑间想要通信需要两台电脑连接一根网线,但是一台电脑基本上只有一个接口。因此想要链接更多的电…

函数重载和引用【C++】

文章目录 函数重载什么是函数重载?函数重载的作用使用函数重载的注意点为什么C可以函数重载,C语言不行? 引用什么是引用?引用的语法引用的特点引用的使用场景引用的底层实现传参时传引用和传值的效率引用和指针的区别 函数重载 什…

全国火情预报卫星遥感应用方案

一、引言 火情预报应急卫星遥感解决方案是一种利用卫星遥感技术进行火灾预警和应急响应的方法。该方案通过实时监测和分析森林、草原等地区的火情信息,为火灾预警和应急响应提供科学依据,有效减少火灾造成的损失。本技术文档将介绍火情预报应急卫…

Android-NDK的linux交叉编译环境

NDK工具包下载 NDK 下载 | Android NDK | Android Developers https://github.com/android/ndk/wiki/Unsupported-Downloads 以android-ndk-r26c下载为例,下载后将压缩包解压至/usr目录下 CMakeLists编译选项设置 编译平台变量判断条件中增加一下android条件…

7款公司电脑监控软件

7款公司电脑监控软件 研究证明,人们在家办公的效率比在办公室办公的效率低一半,其中原因是缺少监督,即便在公司办公,还存在员工偷闲的时刻,比如聊天、浏览无关网站、看剧、炒股等,企业想提高员工的工作效率…

TCP 三次握手与四次挥手面试题(计算机网络)

TCP 基本认识 TCP 头格式有哪些? 序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。 确认应答号&a…

STC89C52学习笔记(二)

STC89C52学习笔记(二) 综述:本文简要介绍了51单片机以及示例了如何成功创建并运行一个程序(点亮一个LED)。 一、单片机介绍 单片机简称MCU,MCUCPURAMROM定时器中断系统通讯协议等单片机任务是信息采集、…

T-Mamba:用于牙齿 3D CBCT 分割的频率增强门控长程依赖性

T-Mamba:用于牙齿 3D CBCT 分割的频率增强门控长程依赖性 摘要Introduction方法T-Mamba architectureTim block T-Mamba: Frequency-Enhanced Gated Long-Range Dependendcy for Tooth 3D CBCT Segmentation 摘要 三维成像中的高效牙齿分割对于正畸诊断至关重要&am…

vue 中使 date/time/datetime 类型的 input 支持 placeholder 方法

一般在开发时,设置了 date/time/datetime 等类型的 input 属性 placeholder 提示文本时, 发现实际展示中却并不生效,如图: 处理后效果如图: 处理逻辑 判断表单项未设置值时,则设置其伪类样式,文…

在线免费图像处理

功能 尺寸修改(自定义和内置常用的照片尺寸)图像压缩(比较好的情况最高可以压缩 10 倍, 如果是无损压缩可以压缩 5 倍左右,参数范围 50~70 左右)图像方向修改图像格式修改修改后的效果支持实时反馈, 并且支持点击图像预览,同时保留历史修改图片(在预览中可以查看)支持修改撤回…

2024-04-08 NO.6 Quest3 自定义交互事件

文章目录 1 交互事件——更改 Cube 颜色2 交互事件——创建 Cube2.1 非代码方式2.2 代码方式 ​ 在开始操作前,我们导入上次操作的场景,相关介绍在 《2024-04-08 NO.5 Quest3 手势追踪进行 UI 交互-CSDN博客》 文章中。 1 交互事件——更改 Cube 颜色 …

Java设计模式之创建型模式(二)原型模式

原型模式 1、原型模式1-1、应用场景1-2、举个 软栗子1-3、举个 硬栗子1-3、举个实务栗子 学习原型模式的目的:原型模式的目的在于通过复制现有的实例来创建新的对象,以避免通过构造函数创建对象时可能带来的性能开销,同时可以控制对象的深度复…

Matlab|基于蒙特卡洛的风电功率/光伏功率场景生成方法

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该模型主要用于风电功率和光伏功率场景生成与缩减,利用多元高斯分布构建时间相关性,并采用蒙特卡洛方法进行仿真,风电功率采用Weibull分布,光伏功率采用Beta分布…

浅析人工智能与数字化的特点

人工智能无疑具有数字化的特点。作为现代科技的一个重要分支,人工智能的发展与数字化进程紧密相连,数字化已经成为了人工智能发展的基础和前提。 首先,我们来理解一下什么是数字化。数字化是将模拟信号转换为数字信号的过程,即将连…

[论文阅读笔记30] (AAAI2024) UCMCTrack: Multi-Object Tracking with Uniform CMC 详细推导

这是群友的一篇工作,之前也没仔细看,正好今天放假,打算读一下论文陶冶情操。 这篇文章的公式比较多,我做一篇笔记解释一下,希望对大家有帮助~ 论文地址: https://ojs.aaai.org/index.php/AAAI/article/view/28493 代…

java数据结构与算法刷题-----LeetCode238. 除自身以外数组的乘积

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 动态规划:左右乘积列表2. 滚动数组对动态规划过程…