Flutter之初始

Flutter是什么

Flutter是一个UI SDK(Software Development kit),可以作为移动端(iOS、Android)、Web端、桌面的跨平台解决方案。

Flutter的特点

使用Flutter内置美丽的Material Design和Cupertion widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新的体验。

Flutter的UI渲染性能很好。在生产环境下,Flutter将代码编译成机器码执行,并充分利用GPU的图形加速能力,因此使用Flutter开发的移动应用即

使在低配手机上也能实现每秒60帧的UI渲染速度。

Flutter的引擎使用C++编写,包括高效的Skia 2D渲染引擎,Dart运行时和文本渲染库

支持Hot Reload(热重载),相比较移动端需要run所有的代码才能看到效果,热重载是即时看到实时的效果

Flutter是一个完全开源的项目。

Flutter绘制原理图

1.GPU将信号同步到UI线程

2.UI线程用Dart来构建图层树

3.图层树在GPU线程进行合成

4.合成后的视图数据提供给Skia引擎

5.Skia引擎通过openGL或者Vulkan将显示内容提供给GPU

Flutter与RN的本质区别

Flutter利用Skia绘图引擎,直接通过CPU、GPU进行绘制,不需要依赖任何原生控件,形成闭环

RN是通过JavaScript虚拟机扩展调用系统组件,由Android和iOS系统进行组件的渲染。

渲染引擎skia

Skia就是 Flutter向 GPU提供数据的途径。
Skia(全称Skia Graphics Library(SGL))是一个由C++编写的开源图形库
Skia 已然是 Android 官方的图像渲染引擎了,因此 Flutter Android SDK 无需内嵌 Skia 引擎就可以获得天然的 Skia 支持
底层渲染能力统一了,上层开发接口和功能体验也就随即统一了,开发者再也不用操心平台相关的渲染特性了。也就是说,
Skia 保证了同一套代码调用在Android 和 iOS 平台上的渲染效果是完全一致的

对于 iOS 平台来说

由于 Skia 是跨平台的,因此它作为 Flutter iOS 渲染引擎被嵌入到 Flutter 的 iOS SDK 中,替代了 iOS 闭源的 Core Graphics/Core 
Animation/Core Text,这也正是 Flutter iOS SDK 打包的 App 包体积比Android 要大一些的原因。
posted @ 2021-03-01 23:16  木子沉雨  阅读(107)  评论(0编辑  收藏  举报