渲染机制随笔

发布时间:2026/7/13 16:26:18

渲染机制随笔
安卓原生绘制/渲染流程安卓原生渲染机制大致流程为XML/DOM View树 → Measure/Layout → Canvas绘制 → SurfaceFlinger系统合成 → GPU先创建Surface-Surface中获取Canvas-Canvas调用skia进行绘制-像素提交给Surface-交给SurfaceFlinger进行硬件合成或者GPU合成硬件加速时skia调用OpenglCanvas是一个类画布对象app进程可以直接调用原生OpenGL此时Canvas和APP的OpenGL是两种不同的渲染路径二选一但是APP中可以同时存在SurfaceFlinger 多个图层怎么叠加、透明混合、裁切、排序全部由 SurfaceFlinger 处理SurfaceFlinger只是一个合成器SurfaceFlinger 是图层合成管理者OpenGL ES 是它的GPU 绘图工具SurfaceFlinger可以直接HWC硬件合成也可以调用OpenGL ES合成硬件合成 HWC 绝大多数普通界面、视频、单 App 页面会走这条路GPU 合成 OpenGL ES 出现多层半透明、模糊、动画、旋转、复杂滤镜、分屏多应用叠加时HWC 硬件能力不足切换 GPU 渲染关于SurfaceApp Activity 页面 一个 Surface弹窗、Dialog、Popup 独立 Surface视频播放器、相机预览、模拟器画面 单独 Surface系统状态栏、导航栏、锁屏界面 系统 Surface关于OpenGL注意区分APP进程的OpenGL和SurfaceFlinger进程的OpenGLAPP的OpenGL将渲染结果输出到一个Surface缓冲区SurfaceFlinger的OpenGL将多个Surface合成一帧OpenGL与OpenGL ES的关系OpenGL完整版OpenGL ES精简版。实现跨平台H5 APP 安卓上使用WebView控件实现在 App 里跑网页RN(React Native) WEEX 利用JS引擎JS 进程和安卓 /iOS 原生进程跨进程通信把页面布局、绘制指令传递给原生端Flutterflutter绘制 skia引擎保证相同的绘制效果 Dart代码 → Skia绘制 → 直接调用平台OpenGL/Vulkan → GPU屏幕flutter的跨平台渲染一致是因为有skia引擎它保证了画出来的像素一致。flutter 内置两套独立组件库material.dart复刻安卓 Material Design 设计语言cupertino.dart复刻 iOS 苹果原生视觉交互就是说它完全可以做成一模一样的效果但是它做了安卓和IOS的适配。欢迎讨论或指正

相关新闻

图神经网络 (GNN) 核心机制:从消息传递到工业级应用

图神经网络 (GNN) 核心机制:从消息传递到工业级应用

2026/7/13 16:16:17

1. 图神经网络的核心机制:消息传递想象一下你刚搬到一个新社区,想快速了解周围环境。最直接的方式是什么?没错,就是和邻居聊天。通过邻居的分享,你会知道哪家超市物美价廉,哪个公园最适合晨跑——这正是图神…

密码与加密基础篇(5):AES 和 RSA 到底怎么配合?一次讲清 App 接口混合加密

密码与加密基础篇(5):AES 和 RSA 到底怎么配合?一次讲清 App 接口混合加密

2026/7/13 16:16:17

前面几篇 密码与加密基础篇(1):别再说 MD5 加密了:编码、摘要、加密到底有什么区别?-CSDN博客 密码与加密基础篇(2):密码到底怎么存?为什么 MD5 已经过时?-CS…

密码与加密基础篇(4):bcrypt / Argon2id 为什么比 MD5 更适合存密码?

密码与加密基础篇(4):bcrypt / Argon2id 为什么比 MD5 更适合存密码?

2026/7/13 16:16:17

前面几篇我们已经把几个基础问题讲清楚了: 密码与加密基础篇(1):别再说 MD5 加密了:编码、摘要、加密到底有什么区别?-CSDN博客 密码与加密基础篇(2):密码到底怎么存&…

如何用ChatGPT把ROI提升3.8倍?——2024最新电商运营SOP流程图、数据看板配置及效果归因模型

如何用ChatGPT把ROI提升3.8倍?——2024最新电商运营SOP流程图、数据看板配置及效果归因模型

2026/7/13 18:06:22

更多请点击: https://kaifayun.com 第一章:ChatGPT电商运营的核心价值与ROI跃迁逻辑 ChatGPT并非仅是对话工具,而是电商运营中可量化的智能中枢——它通过语义理解、上下文记忆与实时决策能力,将用户意图、商品知识与营销策略动态…

GraphRNN实战教程:5分钟上手生成复杂网络结构

GraphRNN实战教程:5分钟上手生成复杂网络结构

2026/7/13 18:06:22

GraphRNN实战教程:5分钟上手生成复杂网络结构 【免费下载链接】graph-generation GraphRNN: Generating Realistic Graphs with Deep Auto-regressive Models 项目地址: https://gitcode.com/gh_mirrors/gr/graph-generation GraphRNN是一款基于深度自回归模…

Notion AI 从入门到精通:7天掌握智能笔记、自动会议纪要、项目管理自动化全流程

Notion AI 从入门到精通:7天掌握智能笔记、自动会议纪要、项目管理自动化全流程

2026/7/13 18:06:22

更多请点击: https://intelliparadigm.com 第一章:Notion AI 的核心能力与工作原理 Notion AI 是深度集成于 Notion 生态的生成式人工智能引擎,其底层依托大型语言模型(LLM)并经过领域特定微调,专为知识管…

Xenia Canary终极指南:5步在PC上完美运行Xbox 360经典游戏

Xenia Canary终极指南:5步在PC上完美运行Xbox 360经典游戏

2026/7/13 18:06:22

Xenia Canary终极指南:5步在PC上完美运行Xbox 360经典游戏 【免费下载链接】xenia-canary Xbox 360 Emulator Research Project 项目地址: https://gitcode.com/gh_mirrors/xe/xenia-canary 想要在现代电脑上重温《光环》、《战争机器》、《极限竞速》等Xbo…

【Cursor大项目实战黄金法则】:20年工程师亲授12个避坑指南与性能翻倍技巧

【Cursor大项目实战黄金法则】:20年工程师亲授12个避坑指南与性能翻倍技巧

2026/7/13 18:06:22

更多请点击: https://codechina.net 第一章:Cursor大项目实战的底层认知与价值定位 Cursor 不是传统意义上的“AI代码补全插件”,而是一个以 LLM 为内核、深度集成开发工作流的智能编程协作者。其底层架构将编辑器(基于 VS Code …

openEuler/yocto-meta-arm完全指南:Arm架构嵌入式开发的终极解决方案

openEuler/yocto-meta-arm完全指南:Arm架构嵌入式开发的终极解决方案

2026/7/13 17:56:21

openEuler/yocto-meta-arm完全指南:Arm架构嵌入式开发的终极解决方案 【免费下载链接】yocto-meta-arm This repository contains the Arm layers for OpenEmbedded. 项目地址: https://gitcode.com/openeuler/yocto-meta-arm 前往项目官网免费下载&#xff…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/13 7:41:16

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

卡梅德生物技术快报|纯化重组蛋白:变异链球菌 SepM 截短蛋白载体构建、诱导优化与纯化重组蛋白全套参数方案

卡梅德生物技术快报|纯化重组蛋白:变异链球菌 SepM 截短蛋白载体构建、诱导优化与纯化重组蛋白全套参数方案

2026/7/13 0:05:25

1 研究背景与现存技术痛点(提出问题)在口腔微生物分子机制研究中,SepM 蛋白酶是调控变异链球菌群体感应、致龋菌素合成的核心功能蛋白,体外功能验证、抗体开发均依赖高纯度可溶性 SepM 蛋白。当前原核表达体系针对 SepM 存在三大技…

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

2026/7/13 0:05:25

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

2026/7/13 0:05:25

研究痛点提出(提出问题)重组肠激酶是融合标签切除核心工具酶,当前原核表达体系存在三大标准化难题,直接阻碍可复现的蛋白质分离纯化流程搭建:Trx、GST、单 SUMO 标签融合产物绝大多数为包涵体,沉淀占比超 9…