Flutter

Flutter整体架构

2019-07-20  本文已影响0人  gczxbb

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目录

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的绘制方面的交互。


任重而道远

上一篇下一篇

猜你喜欢

热点阅读