跨平台框架发展史
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渲染引擎:
Platform:Flutter渲染机制;
ios、Android:渲染成ios、Android APP; 开发调试工具
flutter视图预览、视图调试、Dart语言分析;
web上调试Dart的工具;内置丰富的组件
提供了
适用于Android的Material Design风格的组件
以及
适用于IOS的组件;
还可以在IOS上使用Material Design
风格的组件,
在Android上使用cupertino
的组件;自由组合组件风格;
Flutter架构
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
可编译成ARM
和X86
代码,
让移动端App
可以在iOS、Android
和其他地方
运行;响应式编程;
UI响应式;
参考自CSDN课程
请发表评论