Flutter学习笔记(1)
Flutter介绍
Flutter是谷歌的移动UI框架,可以快速的在IOS和Android上构建高质量的原生用户界面,它可以与现有的代码一起工作,并且Flutter是完全免费的、开源的。
Flutter架构
Flutter的整体框架有两层,一个是Engine层,这层是由c++语言编写的;另一个是FrameWork层,这层是由Dart语言编写的。
Flutter特点
- 快速开发
- 富有表现力,漂亮的用户界面
- 本地性能
Flutter优势
- 热重载
支持开发过程中热重载 - 统一的UI
Flutter提供了丰富的内置组件 Material Design(针对Android)和 Cupertino(适用于iOS),不用担心在众多设备上会有什么差异
Dart
Flutter使用的是Dart
特点
-
基于JIT的快速开发周期
Flutter在开发阶段采用JIT模式,这样可以避免每次有改动都要进行编译,极大的节省了开发时间 -
基于AOT的发布包
Flutter在发布时可以通过AOT生成高效的ARM代码以保证应用性能 -
单线程
不需要锁,不存在数据竞争和变量状态同步,也没有线程上下文切换的性能损耗和锁导致的卡顿 -
垃圾回收
多生代无锁垃圾回收器,专门为UI框架中常见的大量Widgets对象创建和销毁优化
JIT:JIT编译(just-in-time compilation)“即时编译”
AOT:事前编译(ahead-of-time compilation,简称AOT)
为什么会选择使用Flutter?
- 现有的跨平台框架,比如RN都是基于JS,由于JS的执行性能,导致跨平台应用性能一直无法突破瓶颈。而Flutter在Debug使用JIT编译,支持热重载,能够提高我们的开发效率,而Release中利用AOT直接编译成机器码,能够达到更好的性能。
- 从设计角度而言,Flutter提供了非常丰富的Widget组件,能够让我们非常轻松的实现Android或者IOS风格的UI效果。
- Flutter作为Google官方孵化的项目,拥有更加规范与完善的生态圈,依托官方就是它最大的优势之一
Flutter安装
AS中安装Flutter插件