View 是 Android 应用开发的基本 UI 元素,每一个 UI 控件,如按钮、文本框、图片等,都是 View 的子类。它是所有 UI 操作的“最上层组件”。
View
TextView
Button
Surface 是一个 底层显示接口,它是 Android 系统与硬件显示设备的中介,负责将图像数据传递到屏幕,并管理 GPU 渲染结果的显示。
Surface
SurfaceView
SurfaceTexture
NDK 是 Android 提供的 原生开发工具包,用于开发高性能的 C/C++ 代码。它主要用来处理需要底层硬件加速、图形渲染、音视频解码等的任务。
NDK
Flutter 的渲染过程由以下几部分构成:
Flutter 引擎是 所有 Flutter 应用的心脏,负责将 Flutter 层的 Widget 构建成最终可以显示的图形内容。它管理渲染管道,并通过 Skia 来完成实际的图形渲染。
Flutter
Skia 是 Flutter 使用的图形库,它负责:
Skia
在 Flutter 中,Surface 是最终显示内容的承载者。Flutter 在渲染过程中,会使用 Skia 渲染图形,然后通过 Surface 将这些图形显示到屏幕上。
Flutter 引擎通过 Skia 渲染图形,并将这些图形数据放入到 Surface。Surface 将图形数据传递给 GPU,由 GPU 来渲染到显示屏。
SurfaceFlinger
View:在 Flutter 中,View 是平台视图(Platform View)的表现形式,它指的是通过 Flutter 的 Platform Views 实现的原生控件渲染。例如,在 Flutter 中嵌入原生 Android 的 TextView 或 iOS 的 UILabel,这些原生控件的展示就是基于原生平台的 View 系统。
Platform Views
UILabel
Surface:Flutter 的图形渲染最终会通过 Surface 展示在屏幕上。Surface 提供了一个 显示缓冲区,将 Skia 渲染的内容传递给 GPU,通过系统图形服务(如 SurfaceFlinger)显示到屏幕上。
NDK:Flutter 使用 Platform Channels 和 NDK 来调用底层原生图形 API(如 OpenGL / Vulkan / Metal),这允许 Flutter 高效地与平台的硬件进行交互,进行图形渲染、视频处理等操作。
Platform Channels
Github开源生信云平台 DEMO