Flutter整体架构
Flutter架构
Flutter架构Flutter Framework,该层是Dart库,google实现一套用Dart语言开发的基础库,包括Widget,手势,绘图,动画等,有Material和Cupertino风格。
用Dart写App时,在pubspec.yaml文件中配置依赖sdk:flutter即可使用Dart组件库的功能。
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
//三方网络库
http: ^0.12.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
在Android Flutter工程中,打开External Libraries扩展库,Dart Packages包下面的flutter目录,定义一些只有export引用的dart文件,它们定位到flutter/src源码对应名称目录中dart文件。
Dart Packages比如,material.dart文件,代表library material库,export声明了src/material目录下的每一个dart文件,在App中引入material.dart文件。
import 'package:flutter/material.dart';
可以使用material目录中下的dart文件相关类,在material.dart文件,也引入其他library的export文件,如export 'widgets.dart',因此,引入了material.dart,也可以使用widgets目录下的dart文件相关类。
常用的StatelessWidget和StatefulWidget类定义在/src/widgets/framework.dart文件。
Dart Packages的下面的flutter目录在Flutter SDK的/flutter/packages/flutter/lib/目录。
在Packages的Dart库中,可以找到架构中定义的库,animation.dart是动画库,foundation.dart是基础库,gestures.dart是手势库,rendering.dart是渲染库,painting是绘制库。
在Packages中,每一个模块根目录的文件是包含export关键字的dart文件,类似模块包括cupertino_icons,async等。
Flutter Engine,C++库,实现Skia引擎,Dart运行时,Text排版引擎,通过JIT或AOT模式运行Dart代码,负责和上层Dart Framework的绘制方面的交互。
任重而道远