腾讯技术团队整理,为什么-Flutter-能最好地改变移动开发

本文探讨了Flutter如何通过其独特的Skia渲染引擎、快速的热重载、丰富的组件库,以及接近原生性能的表现,改变移动开发的格局。Flutter的优势包括跨平台一致性、时间效率、快速迭代、高性能、自定义动画以及便捷的原生API调用。同时,文章对比了Flutter与React Native,并指出了Flutter在UI和性能方面的优越性。尽管存在社区规模、动态更新等方面的挑战,Flutter仍展现出巨大的潜力。
摘要由CSDN通过智能技术生成

那么,Flutter 是怎么完成组件渲染的呢?

这需要从图像显示的基本原理说起。在计算机系统中,图像的显示需要 CPU、GPU 和显示器一起配合完成:CPU 负责图像数据计算,GPU 负责图像数据渲染,而显示器则负责最终图像显示。

随后视频控制器会以每秒 60 次的速度,从帧缓冲区读取帧数据交由显示器完成图像显示。

可以看到,Flutter 关注如何尽可能快地在两个硬件时钟的 VSync 信号之间计算并合成视图数据,然后通过 Skia 交给 GPU 渲染:UI 线程使用 Dart 来构建视图结构数据,这些数据会在 GPU 线程进行图层合成,随后交给 Skia 引擎加工成 GPU 数据,而这些数据会通过 OpenGL 最终提供给 GPU 渲染。

2. 关于Skia

Skia是一个开源的 2D 图形库,提供各种常用的API,并可在多种软硬件平台上运行。谷歌Chrome浏览器、Chrome OS、安卓、Flutter、火狐浏览器、火狐操作系统以及其它许多产品都使用它作为图形引擎。

Skia 在图形转换、文字渲染、位图渲染方面都表现卓越,并提供了开发者友好的 API。

因此,架构于 Skia 之上的 Flutter,也因此拥有了彻底的跨平台渲染能力。通过与 Skia 的深度定制及优化,Flutter 可以最大限度地抹平平台差异,提高渲染效率与性能。

底层渲染能力统一了,上层开发接口和功能体验也就随即统一了,开发者再也不用操心平台相关的渲染特性了。也就是说,Skia 保证了同一套代码调用在 Android 和 iOS 平台上的渲染效果是完全一致的。

同样的在界面渲染、绘制的过程中,Flutter也做了很多优化处理,提升合成、渲染效率。

3. FLutter的优势

(1)在所有的平台下,都可以保持同样UI样式,同样的业务逻辑

大多数跨平台框架中的UI呈现如下图所示:

而Flutter是直接画在画布上:

(2)减少开发所需的时间

  • Flutter的热重载可以高效快速的看到改变,甚至保留应用状态;
  • 官方提供的各种现成的组件(Material和Cupertino)。

(3)快速迭代上线

不需要单独适配 iOS、Android 双端的 UI 层面。

(4)更接近native的性能表现

Flutter不依赖任何中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值