Flutter的详细介绍


浏览:896 次

Flutter概述Flutter是谷歌的移动UI框架,可以在iOS和Android上快速构建高质量的本地用户界面。Flutter可以使用现有代码。在世界上,Flutter正被越来越多的开发人员和组织所使用。Flutter是完全免费和开源的。您可以使用一组代码同时构建Android和iOSapp,其性能可以达到与原生app相同的性能。

总之,Flutter是一个跨平台、高性能的移动UI框架。

跨平台Flutter使用其自己的高性能渲染引擎来绘制小部件([¨w¨d¨t]),这可以确保Android和iOS上用户界面的一致性。目前,Flutter已经支持iOS、Android、Web、Windows、macOS、Linux、Fuchsia(谷歌新的自主开发操作系统)和许多其他平台。

高性能Flutter的高性能主要由两点保证:

用Dart语言开发

使用自己的渲染引擎绘制UI;

在JIT模式下,Dart语言的执行速度与JavaScript基本相同。但是,它支持AOT。在AOT模式下运行时,JavaScript远远没有赶上,执行效率大大提高。Flutter使用自己的渲染引擎绘制UI,布局数据由Dart语言直接控制,因此性能开销相当大

颤振框架结构颤振从上到下可分为三层:框架层、发动机层和嵌入层

框架层的下两层合并为dart UI层,对应于Flutter中的dart:UI包。它是Flutter Engine公开的底层UI库,提供动画、手势和绘图功能。

渲染层取决于Dart UI层。渲染层将构建由可渲染对象组成的渲染树。当动态更新这些对象时,渲染树将找出更改的部分,然后更新渲染。渲染层可以说是Flutter框架层的核心部分。除了确定每个渲染对象的位置和大小外,还需要执行坐标变换和绘制(调用底层dart:ui)。

Widgets层是Flutter提供的一组基本组件库。除了基本组件库之外,Flutter还提供了两个视觉样式组件库,即Material和Cupertino,它们分别实现Material和iOS设计规范。

引擎层引擎层是Flutter的核心,由C++实现,包括Skia引擎、Dart运行时、文本排版引擎等;Dart:当调用ui库时,调用最终将转到引擎层,然后将实现真正的绘图和显示

嵌入式层嵌入式层主要用于将Flutter引擎“安装”到特定平台。Flutter代码可以通过嵌入式层以模块化的方式集成到现有app中,也可以用作app的主体。

使用Flutter的优势传统Webapp有数千个DOM节点,因此更新非常简单和频繁,导致页面加载速度缓慢。因此,现代Webapp开始使用虚拟DOM技术来提高页面更新的速度,使用虚拟DOM而不是直接调用类似的DOM。getElementById方法只对JavaScript对象进行操作,然后将更改的部分更新为真实的DOM,这非常方便。然而,添加虚拟DOM意味着更多的代码,在DOM节点相对较少的页面中使用虚拟DOM实际上可能会更慢。

它不仅是一个现代Webapp,而且当前主流的Android和iOSapp也使用了许多类似于虚拟DOM的技术,即虚拟控件。由于移动设备的性能优势,虚拟DOM形式的响应框架的优势得以最大化,使得开发人员忽略了该模型的缺点。

在Flutter的响应框架中,控制树中的控件直接通过便携式图形加速渲染引擎和高性能本地ARM代码绘制,而不是使用虚拟DOM或虚拟控件、真实DOM或平台控件作为中间对象。Flutter响应框架通过“无中间商的差异化”的方式直接使用硬件的所有性能。

比较:AVM框架

(app视图模型)框架是统软云的框架之一,它更接近于原始的编程体验。它提供了一个简单的模型来分离app的用户界面、业务逻辑和数据模型。它适用于高度定制的项目。它可以一次性编码,可以同时开发Android、iOS、小程序和其他多端app。

AVM是一种DSL

相关资讯:
农产品电子商务向企业个人农产品电子贸易方向发展的效益

农产品电子商务向企业个人农产品电子贸易方向发展的效益

查看
Web 3.0技术的基本方向

Web 3.0技术的基本方向

查看
认知

认知

查看
面向对象的

面向对象的

查看
2018-12-25

2018-12-25

查看