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

「安卓framework基础篇4」什么是SurfaceFlinger?(基于AOSP13)

「安卓framework基础篇4」什么是SurfaceFlinger?(基于AOSP13)

前言

肯定有人会疑惑,为什么开机动画说得好好的突然跳到SurfaceFlinger了?因为用户在屏幕上看到的内容,最终都是由SurfaceFlinger合成上屏的,无论是用Activity和View绘制出来的画面,还是用canvas、OpenGL亦或是Vulkan直接画出来的内容,最终都是交给Native层的SurfaceFlinger服务来合成并调用hal层驱动显示到屏幕上的。

APP开发层面使用Activity、View创建的画面内容虽然必须通过WMS来间接调用SurfaceFlinger,但安卓framework层的代码中,也有很多地方是通过直接调用SurfaceFligner将画面显示到屏幕上的,开机动画就是其中较典型的场景。

可以说SurfaceFlinger是framework最底层的图形合成服务,并且SurfaceFlinger的设计也很复杂巧妙,如果理解了SurfaceFlinger再学WMS可以说手到擒来轻轻松松。如果先学WMS的话,很多调用SurfaceFlinger的地方会让人疑惑,打击学习的成就感导致学习积极性下降。

好了,废话不多说,我们一起来看一看SurfaceFlinger吧!

SurfaceFlinger 做了啥

例子:

SurfaceFlinger负责把每个进程对应的显示区域的可见部分,合成到一块屏幕上。如上图的例子,打开的是一个通讯录APP的自由窗口,这个窗口是在壁纸(最底下的白底背景就是壁纸)、桌面(显示app图标的那一层)之上的,壁纸和桌面被自由窗口覆盖的部分在屏幕上是看不到的,但其实在绘制的时候,壁纸进程、桌面进程都会把各自的完整图像绘制出来作为一个图层交给SurfaceFlinger,最后由SurfaceFlinger根据各个进程图层的位置、层级关系(例如上图的自由窗口画面层级就在桌面和壁纸之上)、透明度,将多个图层合成最终要显示到屏幕上的一帧画面。

大纲

后续将会推出一系列文章来分析SurfaceFlinger合成上屏的过程,大致内容如上图大纲所示。

http://www.jsqmd.com/news/1357684/

相关文章:

  • GEO工具避坑:拒绝API聚合套壳,如何看懂数据清洗与语义分
  • Human‑in‑the‑Loop
  • YOLO环境部署指南零基础
  • 从零构建DOTS渲染框架:七步打造高性能游戏渲染系统
  • IDE与AI智能体无缝集成:基于ACP协议与JSON-RPC的工程实践
  • 【Mediatek】MT7990 当前温度、TX Duty 及温控参数配置操作说明
  • 小米智能摄像机4 Max AI变焦版:家用安防如何实现清晰远距离监控
  • 2026年西安配电房设备厂家实力解析:箱变成套与油田钻井电代油设备源头工厂选择参考 - 优企名品
  • SEV处于活动状态
  • UTF-8编码原理与乱码解决方案全指南
  • 基于MCP协议构建高还原度Figma转代码AI助手实战指南
  • 拒绝断连翻车|大厂 LLM 流式对话无状态架构深度拆解(附 源码)
  • Cascade 压缩把关键约束吞了,我的 RAG 召回率暴跌 40%——对话压缩前后的 5 层校验
  • 孟子哲学与AI伦理:传统智慧解决算法偏见
  • DeepSeek生态防骗指南:技术人如何识别AI投资骗局
  • 华硕笔记本终极性能优化指南:G-Helper完整配置教程
  • Claude Code实战指南:从环境配置到高级指令工程,打造高效AI编程伙伴
  • 2026东莞瓷砖空鼓维修本地专业维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • GIS数据制备、空间分析与建模实践全流程指南
  • DocuSign电子签名全流程指南与实战技巧
  • Unity动态地形编辑:基于xLua的运行时地形修改方案
  • 2026唐山瓷砖空鼓维修本地优质维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • Dev-C++编译器配置全解析:突破TDM-GCC限制,打造定制化C/C++开发环境
  • 如何实现天猫自动化上架自动化?独占IP+Profile固化,从创建到销毁零关联
  • 如何用Whisky在Mac上轻松运行Windows软件:终极免费方案
  • 力扣130题:被围绕的区域DFS/BFS解法与优化
  • 移动电源预配置提升配电网韧性的MATLAB实现
  • 对象存储 MinIO 的两种生产环境适用部署方式
  • 揭秘建设银行江西分行官方网站的便捷服务与数字化转型之路,打造百姓身边的贴心金融管家
  • 自动驾驶仿真场景构建:CARLA与LGSVL核心能力对比与选型指南