Day1 flutter和dart (环境搭建)
认识
- JIT和AOT
程序主要有两种运行方式:静态编译与动态解释。
静态编译的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT (Ahead of time)即 “提前编译”;AOT程序的典型代表是用C/C++开发的应用,它们必须在执行前编译成机器码
解释执行的则是一句一句边翻译边运行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。
- Dart运行时和编译器支持Flutter的两个关键特性的组合
基于JIT的快速开发周期:Flutter在开发阶段采用JIT模式,这样就避免了每次改动都要进行编译,极大的节省了开发时间;
基于AOT的发布包: Flutter在发布时可以通过AOT生成高效的ARM代码以保证应用性能。而JavaScript则不具有这个能力。
框架结构
Framework是个纯dart实现的sdk。
1-foundation+(Animation/painting/gestures):这是框架的最底两层,合并成为一个dart UI层,对应的flutter中的dart:ui包(flutter引擎暴露的底层UI库,提供动画、手势和绘画能力)
2-rendering层,是一个抽象的布局层,依赖于dart UI层,rendering层会构建一个UI树(UI树发生变化时会重新计算出有变化的部分,再更新UI树,将其绘制到屏幕)。rendering层是flutter UI框架最核心的部分(确定每个UI元素的位置、大小,进行坐标变换、绘制(调用底层dart:ui))
3-widgets层是一套基础组件库。
4-material+cupertino是两种视觉风格的组件库
Engine是个纯c++实现的sdk。包括了skia引擎、dart运行时、文字排版引擎等。
调用dart:ui库时,调用最终会走到engine层,实现真正的绘制逻辑。
搭建开发环境
1、安装flutter
2、安装Android Studio
2.1安装flutter和dart插件
File>Settings>Plugins
3、创建flutter应用
File>Settings>Plugins
3、创建flutter应用