浅析Flutter的架构设计
Posted 君伟说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析Flutter的架构设计相关的知识,希望对你有一定的参考价值。
系统的了解Flutter开发,从了解Flutter系统架构开始。
Flutter作为目前跨平台开发领域的新秀,采用了和以往Web容器(例如Cordova,Ionic)及泛Web容器时代(ReactNative,Weex)截然不同的解决方案,它采用了自绘引擎方案。
-
渲染引擎依靠跨平台的Skia图形库来实现,Skia引擎将Dart构建的抽象视图结构数据加工成GPU数据,交给OpenGL最终提供给GUP渲染,完成渲染闭环,最大程度上保证了应用在不同平台、不同设备上的体验一致性
-
开发语言层面采用了Dart, 同时支持JIT和AOP, 保证了开发效率的同时,又提升了执行效率。
下面这是Google提供的Flutter整体架构设计图,Flutter architectural overview
从上图可以看到Flutter整体框架是采用分层设计的,自下而上分别是:Embedder层,Engine层,Framework层。
-
Embedder层是操作系统适配层,实现了渲染Surface设置,线程设置,平台插件等特性适配。
-
Engine层主要是包含Skia、Dart和Text,实现Flutter渲染引擎,文字排版,事件处理和Dart运行时等功能。Skia和Text为上层提供调用底层渲染和排版的功能,Dart提供了运行时调用Dart和渲染引擎的能力。引擎通过 dart:ui 暴露给 Flutter 框架,dart:ui 将底层 C++ 代码封装在 Dart 类中。该库公开了最低级别的基元,例如用于驱动输入、图形和文本渲染子系统的类。
-
Framework层是一个用Dart实现的UI SDK, 包括动画,图形绘制,手势识别等功能。通过Material和Cupertino两种视觉设计风格封装了一套UI组件库,并将所有的设计通过Widgets小组件层进行了抽象封装,所以Flutter中,“一切都是Widget”。
Flutter通过自己的一套自绘引擎的方案实现了跨平台,在Google的大力推动下必将获得更大的发展。
推荐阅读:
--- End ---
君伟说
以上是关于浅析Flutter的架构设计的主要内容,如果未能解决你的问题,请参考以下文章