编程-学习-思考

Flutter 系统结构总览

Flutter 系统结构总览

个人习惯,对于一项技术很喜欢探索一下底层实现,虽然目前还没有什么进步。这一次,就来看看Flutter SDK的系统结构是如何组织的。

上一次说到了Flutter的目录结构,显然不能解开心中对于Flutter是如何运行的疑惑。再加上Flutter工程用的大部分都是Dart语言,这个又是如何编译成Android和iOS平台的呢。先来看看官方给出的Flutter系统结构是什么样子的:

从中可以看出 Flutter 主要分为三层:

  1. 第一层也就是 SDK Framework 层,主要是 dart 语言实现的各种库。其中包括 Material Design 和 Cupertino 库,各种 widget 的具体实现,然后就是动画、画布和手势等。在你下载的 flutter 根目录的 package 里面可以找到具体的实现。

  2. 第二层就是 engine 层,这也是 flutter 的核心所在,所有第一层都是用 dart 语言,而第二层则是用C/C++来实现的。主要使用了 Skia 作为 2D 图形库,实现了 Dart VM和一个和平台相关的 shell。

Flutter 是如何运行的