Flutter 简介

Flutter 简介

  • 1.什么是Flutter
  • 2.特性
    • 2.1 跨平台自绘UI引擎
    • 2.2 高性能
    • 2.3 Dart语言开发
      • 2.3.1 开发效率高
      • 2.3.2 高性能
      • 2.3.3 快速内存分配。
      • 2.3.4 类型安全和空安全。
    • 3.快速开发
    • 4.富有表现力和灵活的UI
    • 5.原生性能
  • 6.小结

1.什么是Flutter

Flutter是谷歌的高性能、跨端UI框架,可以通过一套代码,支持iOS、Android、Windows/MAC/Linux等多个平台,且能达到原生性能。
Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native(即原生开发,指基于平台原生语言来开发应用,flutter可以和平台原生语言混合开发) 扩展。
Flutter也可以与平台原生代码进行混合开发。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

2.特性

2.1 跨平台自绘UI引擎

Flutter 是一款自渲染框架,底层使用 Skia 作为其 2D 渲染引擎,Skia 是 Google的一个 2D 图形处理函数库,包含字型、坐标转换,以及点阵图,它们都有高效能且简洁的表现。Skia 是跨平台的,并提供了非常友好的 API,目前 Google Chrome浏览器和 Android 均采用 Skia 作为其 2D 绘图引擎。

2.2 高性能

Flutter 主要基于Drat语言开发。而Dart 支持 JIT(Just-in-time-动态解释)与 AOT(Ahead of time-静态编译),因为Dart支持AOT,所以相较与其他跨平台框架如JavaScript拥有更高的运行速度。

2.3 Dart语言开发

程序主要有两种运行方式:静态编译与动态解释。
静态编译的程序在执行前程序会被提前编译为机器码(或中间字节码),通常将这种类型称为AOT (Ahead of time)即 “提前编译”。
而解释执行则是在运行时将源码实时翻译为机器码来执行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。
AOT 程序的典型代表是用 C/C++ 开发的应用,它们必须在执行前编译成机器码;
而JIT的代表则非常多,如JavaScript、python等,事实上,所有脚本语言都支持 JIT 模式。但需要注意的是 JIT 和 AOT 指的是程序运行方式,和编程语言并非强关联的,有些语言既可以以 JIT 方式运行也可以以 AOT 方式运行,如Python,它可以在第一次执行时编译成中间字节码,然后在之后执行时再将字节码实施转为机器码执行。

2.3.1 开发效率高

Dart 运行时和编译器支持 Flutter 的两个关键特性的组合:
基于 JIT 的快速开发周期:Flutter 在开发阶段采用,采用 JIT 模式,这样就避免了每次改动都要进行编译,极大地节省了开发时间;
基于 AOT 的发布包: Flutter 在发布时可以通过 AOT 生成高效的机器码以保证应用性能。

2.3.2 高性能

Flutter 旨在提供流畅、与真实的UI 体验。为了实现这一点,Flutter 中需要能够在每个动画帧中运行大量的代码。这意味着需要一种既能保证高性能,也不会出现丢帧的编程语言,而 Dart 支持 AOT,相较于其他跨平台开发语言在这一点上更具有优势。

2.3.3 快速内存分配。

Dart 支持动态的垃圾回收机制,采用了多生代算法。新生代在回收 内存时采用“半空间”机制,触发垃圾回收时,Dart 会将当前空间中的“活跃”对象拷贝到备用空间,然后整体释放当前空间的所有内存。回收过程中,Dart 只需要操作少量的“活跃”对象,没有引用的大量“死亡”对象则被忽 略,这样的回收机制很适合 Flutter 框架中大量 Widget 销 毁重建的场景。

2.3.4 类型安全和空安全。

由于 Dart 是类型安全的语言,且 2.12 版本后也支持了空安全特性,所以 Dart 支持静态类型检测,可以在编译前发现一些类型的错误,并排除潜在问题,这一点对于前端开发者来说可能会更具有吸引力。

3.快速开发

毫秒级的热重载,修改后,您的应用界面会立即更新。使用丰富的、完全可定制的widget在几分钟内构建原生界面。

4.富有表现力和灵活的UI

快速发布聚焦于原生体验的功能。分层的架构允许您完全自定义,从而实现难以置信的快速渲染和富有表现力、灵活的设计。

5.原生性能

Flutter包含了许多核心的widget,如滚动、导航、图标和字体等,这些都可以在iOS和Android上达到原生应用一样的性能。

6.小结

本小节主要介绍了一下 Flutter 及其特点,总的来说Flutter是一款跨平台的自渲染UI框架,基于Dart语言开发,因此通过Dart语言带来了诸多特性。如果当前或者以后有跨平台开发的需求可以考虑使用Flutter,如果没有个人建议还是使用原生UI开发。

你可能感兴趣的:(Flutter,flutter,android)