分享

Flutter渲染基本了解

 hewii 2022-10-20 发布于上海

Flutter是什么?

  • Flutter是一个UI SDK(Software Development Kit)

  • 可以进行移动端(iOS, Android), Web端(Beta) ,桌面(technical preview),跨平台解决方案.

  • 移动端目前已经很多公司在使用flutter开发,Google ,阿里 (手淘, 闲鱼),腾讯(手Q)等,特别是阿里的闲鱼团队,为Flutter做出了非常多的贡献.

  • Flutter它是有一统大前端的野心,并且它正在侵蚀iOS和Android这些原生开发.

Flutter有哪些特点?

  • 美观, 快速, 高效 ,开放

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

— 快速: Flutter的UI渲染性能很好,在生产环境下.Flutter将代码编译成机器码执行,并充分利用GPU的图形加速能力,因此使用Flutter开发的移动应用即使在低配手机上也能实现每秒60帧的UI渲染速度。Flutter引擎使用C++编写的,包括高效的Skia 2D渲染引擎,Dart运行是和文本渲染库.

— 高效: Hot Reload(热重载),在前端已经不是什么新鲜的东西,但是移动端之前一直都是没有的.

— 开放: Flutter是开放的,它是一个开源的项目.

Flutter渲染引擎Skia

  • Skia就是Flutter向GPU提供数据的途径。

  • Skia(全称Skia Graphics Library(SGL))是一个C++编写的图形库,能在低端设备上呈现高质量的2D图形,最初由Skia公司开发,后被Google收购.目前,Skia已然是Android官方的图像渲染引擎了,因此Flutter Android SDK无需内嵌Skia引擎就可以获得天然的Skia支持.该引擎应用于Android,Google Chrome, Chrome OS等等当中.

  • 而对于iOS平台来说,有Skia是跨平台的,因此它作为Flutter iOS渲染引擎被嵌入到Flutter的iOS SDK中,替代iOS闭源的Core Graphics/Core Animation /Core Text,这也正是Flutter iOS SDK打包的App包体积比Android要大的原因.

下面是Flutter的渲染过程(以Double Buffer为例)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多