Flutter 架构图


高性能渲染引擎(Engine 层)是最核心的部分。Flutter不使用浏览器技术,也不使用Native的原生控件,它使用自己的渲染引擎来绘制widget。
在Android平台,Flutter引擎的C/C++代码是由NDK编译
在iOS平台,则是由LLVM编译
两个平台的Dart代码都是AOT编译为本地代码
Flutter应用程序使用本机指令集运行。
Flutter正是是通过使用相同的渲染器、框架和一组widget,来同时构建iOS和Android应用,而无需维护两套独立的代码库。
Foundation层由dart:ui实现。 dart:ui提供了Framework能够运行的最基础功能,比如绘图,界面刷新,触屏,鼠标等事件的原始信息等。
Rendering层由几个子模块组成:Animation, Painting, Gestures. 在这一层,Flutter提供RenderObject,实现完整的布局,绘制功能。
Widgets层是开发者最常接触到的一层。 Widget是对RenderObject的封装。在Widget层,Flutter实现了响应式开发框架。
Material,Cupertino层: 在这一层,Flutter提供了一系列的Widget,其中Material Widget实现了Material Design。Cupertino提供了一系列的iOS-Style的控件。
