网站建设微信商城网站制作,网站建设项目实训报告,专业团队表情包张伟,整站seo服务Flutter整体框架由三部分组成#xff1a;Framework、Engine和Embedder。 Framework Framework提供了一个用 Dart 语言编写的现代、反应式框架#xff0c;由许多抽象的层级组成。它包括一套丰富的布局、动画、绘制、手势UI组件及配套代码#xff0c;以及更基础的异步、文件、… Flutter整体框架由三部分组成Framework、Engine和Embedder。 Framework Framework提供了一个用 Dart 语言编写的现代、反应式框架由许多抽象的层级组成。它包括一套丰富的布局、动画、绘制、手势UI组件及配套代码以及更基础的异步、文件、ui等基础服务。 Framework最顶端是各种Widgets。包括我们经常用到的 Material 和 Cupertino两种风格的Widget以及下面的不带明确风格的Widgets。比如UI/文本/图片/按钮等基础 Widgets。 在 Widget 层下面你会发现 Rendering 层。 再往下是RenderObject。其会被上层的Flutter Widgets调用来实现其布局和后台的绘制。Rendering tree 中的所有 RenderObjects 都会被Flutter分层和绘制。不过大多数情况下 你会发现 Flutter中我们想要实现自定义的绘制逻辑主要是使用CustomPaint或RenderObject的子类RenderBox 而不是直接使用RenderObject。因为封装一个全新的RenderObject是相当麻烦的我们必须去实现layout、绘制和命中测试逻辑。 dart:ui 是框架的最底层它负责处理与 Engine 层的交流沟通以及一些对Flutter开发的基础抽象。 此部分的核心代码是: flutter 仓库下的flutter package以及 sky_engine 仓库下的 io, async, ui等package。 Engine Engine大部分是用C实现的其提供了Flutter核心API的底层实现。包括 Dart 运行时、编译工具链以及图形通过Skia、文本布局、文件和网络I/O、可访问性支持、插件架构等等是连接框架和系统Andoird/iOS的桥梁。 Engine通过dart:ui暴露给Flutter框架它将底层的C代码封装在Dart类中。这个库暴露了最底层的基元例如用于驱动输入、图形和文本渲染子系统的类。 Dart 部分主要包括:Dart RuntimeGarbage Collection(GC)以及Debug模式下的JIT支持。 Skia是开源的二维图形库提供了适用于多种软硬件平台的通用API。 Text 即文本渲染其使用Skia作为渲染后端在Android和Fuchsia上使用FreeType渲染在iOS上使用CoreGraphics来渲染字体。 Embedder Embedder 负责与底层操作系统协调以访问服务如渲染表面、可访问性和输入并管理线程及消息事件循环。 Embedder提供初始化 Flutter 引擎的入口使Flutter 代码可以作为一个模块集成到现有的应用程序中或者作为应用的主要模块。 Embedder会获取 UI 和栅格化线程创建 Flutter 可以写入的纹理。 Embedder层同时负责管理应用的生命周期包括输入的操作例如鼠标、键盘和触控、窗口大小的变化、线程管理和平台消息的传递等等。