Flutter渲染基本了解

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为例)


image.png

你可能感兴趣的:(Flutter渲染基本了解)