Flutter概述、原理-&-跨平台历史及各方案比较-&-Dart概述

132 阅读2分钟

#跨平台框架发展史 1.Android&IOS双端开发线开发周期较长, 为了尽快推出产品,减少开销、缩短开发周期、提高开发效率, 从而产生跨平台方案;

2.一开始:Web移动开发; 优势:入门门槛低,会前端即可; 缺点:没有原生流畅,性能比较差;

3.接着,webView; 原生和前端需要密切配合; 流行框架:dcloud、cordova、ionic

4.含有编译转换特性的跨平台框架 Weex、React Native、Flutter


#Flutter概述 - Google推出的一个跨平台的项目; - 最早起源于2015年; - 使用Dart语言; - 可以运行在Android、IOS以及其他设备上,得到接近原生的体验; - 是免费、开源的; --- - **是现代响应式框架 方便快捷、热重载(hotreload,不用重启工具即可看到编译效果,代码做了改变可以及时地看到)** - **快速的2D渲染引擎 flutter不依赖于原生平台, 它有自己独立的渲染引擎, 通过`可移植`的`GPU加速渲染`以及`高性能`的`本地arm`代码`运行时`, 达到跨设备、跨平台的高质量用户体验; Flutter有自己的Skia渲染引擎: ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bd45e0bc61344e2d97498cc9bddfec52~tplv-k3u1fbpfcp-zoom-1.image)Application:Dart运用; Platform:Flutter渲染机制; ios、Android:渲染成ios、Android APP;**
  • 开发调试工具 flutter视图预览、视图调试、Dart语言分析; web上调试Dart的工具;

  • 内置丰富的组件

  • 提供了 适用于Android的Material Design风格的组件 以及 适用于IOS的组件; 还可以在IOS上使用Material Design风格的组件, 在Android上使用cupertino的组件;

  • 自由组合组件风格;


#Flutter架构 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d8f4655409e84f1290cee5d2ecee2f21~tplv-k3u1fbpfcp-zoom-1.image)
#Flutter基本原理 - Dart语言编写的框架层【Framework】, Material、Cupertino:两套风格组件; Widgets:组件; Rendering:渲染层; Animation、Painting、Gesture:动画、绘制、手势; Foundation:基础库; - 引擎层【Engine】(C++编写) Skia:图形渲染引擎库【最基本的核心部分】; Dart:Dart VM(虚拟机),用于编译和运行Dart代码; Text:文本渲染;
#Dart - 由谷歌开发; - 简洁,强类型,面向对象; - **支持即时编译(Just-In-time,`JIT`)和 预编译(Ahead-of-time,`AOT`);
`JIT`:支持真机、模拟器, 此模式下断点、调试工具都会打开, 安装包会很大,启动速度慢,可以通过热加载(hotreload)看到UI的更改; `AOT`:仅支持真机, 编译打包上线时用的模式, 将Dart语言文件编译成本地字节码文件, 去掉断点、调试工具,安装包会小很多;**
  • 静态类型, 帮助我们在编译时捕获错误, 并在代码增长时管理代码;

  • 易于移植, Dart可编译成ARMX86代码, 让移动端App可以在iOS、Android其他地方运行;

  • 响应式编程; UI响应式;






--- 参考自[CSDN课程](https://edu.csdn.net/mycollege)