当前位置: 首页 > news >正文

wordpress 千万数据seo信息是什么

wordpress 千万数据,seo信息是什么,微信公众号开发网站建设,哪些网站可以做平面设计【Flutter从入门到入坑之一】Flutter 介绍及安装使用 【Flutter从入门到入坑之二】Dart语言基础概述 【Flutter从入门到入坑之三】Flutter 是如何工作的 本文章主要以界面渲染过程为例,介绍一下 Flutter 是如何工作的。 页面中的各界面元素(Widget&…

【Flutter从入门到入坑之一】Flutter 介绍及安装使用
【Flutter从入门到入坑之二】Dart语言基础概述
【Flutter从入门到入坑之三】Flutter 是如何工作的

本文章主要以界面渲染过程为例,介绍一下 Flutter 是如何工作的。

页面中的各界面元素(Widget)都是以树的形式组织,即控件树。Flutter 通过控件树中的每个控件创建不同类型的渲染对象,组成渲染对象树。而渲染对象树在 Flutter 的展示过程分为四个阶段:布局、绘制、合成和渲染。


布局

Flutter 采用深度优先机制遍历渲染对象树,决定渲染对象树中各渲染对象在屏幕上的位置和尺寸。在布局过程中,渲染对象树中的每个渲染对象都会接收父对象的布局约束参数,决定自己的大小,然后父对象按照控件逻辑决定各个子对象的位置,完成布局过程。

图1. Flutter 布局过程

为了防止因子节点发生变化而导致整个控件树重新布局,Flutter 加入了一个机制——布局边界(Relayout Boundary),可以在某些节点自动或手动地设置布局边界,当边界内的任何对象发生重新布局时,不会影响边界外的对象,反之亦然。

图2. Flutter 布局边界


绘制

布局完成后,渲染对象树中的每个节点都有了明确的尺寸和位置。Flutter 会把所有的渲染对象绘制到不同的图层上。与布局过程一样,绘制过程也是深度优先遍历,而且总是先绘制自身,再绘制子节点。

如下图示例:节点 1 在绘制完自身后,会再绘制节点 2,然后绘制它的子节点 3、4 和 5,最后绘制节点 6。

图3. Flutter 绘制示例
可以看到,由于一些其他原因(比如,视图手动合并)导致 2 的子节点 5 与它的兄弟节点 6 处于了同一层,这样会导致当节点 2 需要重绘的时候,与其无关的节点 6 也会被重绘,带来性能损耗。

为了解决这一问题,Flutter 提出了与布局边界对应的机制——重绘边界(Repaint Boundary)。在重绘边界内,Flutter 会强制切换新的图层,这样就可以避免边界内外的互相影响,避免无关内容置于同一图层引起不必要的重绘。

图4. Flutter 重绘边界

重绘边界的一个典型场景是 Scrollview。ScrollView 滚动的时候需要刷新视图内容,从而触发内容重绘。而当滚动内容重绘时,一般情况下其他内容是不需要重绘的,这时候重绘边界就派上用场了。


合成

终端设备的页面越来越复杂,因此 Flutter 的渲染树层级通常很多,直接交付给渲染引擎进行多图层渲染,可能会出现大量渲染内容的重复绘制,所以还需要先进行一次图层合成,即将所有的图层根据大小、层级、透明度等规则计算出最终的显示效果,将相同的图层归类合并,简化渲染树,提高渲染效率。

合并完成后,Flutter 会将几何图层数据交由 Skia 引擎加工成二维图像数据,最终交由 GPU 进行渲染,完成界面的展示。


渲染

Flutter 是怎么完成组件渲染的呢? 这需要从图像显示的基本原理说起。

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

CPU 把计算好的、需要显示的内容交给 GPU,由 GPU 完成渲染后放入帧缓冲区,随后视频控制器根据垂直同步信号(VSync)以每秒 60 次的速度,从帧缓冲区读取帧数据交由显示器完成图像显示。

操作系统在呈现图像时遵循了这种机制,而 Flutter 作为跨平台开发框架也采用了这种底层方案。下面有一张更为详尽的示意图来解释 Flutter 的绘制原理。

图5. Flutter 绘制原理

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

Skia 是什么?

要想了解 Flutter,你必须先了解它的底层图像渲染引擎 Skia。因为,Flutter 只关心如何向 GPU 提供视图数据,而 Skia 就是它向 GPU 提供视图数据的好帮手。

Skia 是一款用 C++ 开发的、性能彪悍的 2D 图像绘制引擎,其前身是一个向量绘图软件。2005 年被 Google 公司收购后,因为其出色的绘制表现被广泛应用在 Chrome 和 Android 等核心产品上。Skia 在图形转换、文字渲染、位图渲染方面都表现卓越,并提供了开发者友好的 API。

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

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


本章节内容主要是学习 陈航 老师的《Flutter 核心技术与实战》课程总结而来。

http://www.yayakq.cn/news/516114/

相关文章:

  • 企业建设H5响应式网站的5大好处6郑州 网站建设有限公司
  • 遨游网站建设如何做衣服销售网站
  • 网站部分网页乱码公司做阿里巴巴网站要多少钱
  • 站长工具视频网站现在怎么做排名
  • 做装修行业营销型网站沈阳网站建设与开发
  • 珠海网站免费制作怎样制作一个二维码
  • 如何做网站网页免费建设网站需要做什么
  • 网站开发流程书籍附近的教育培训机构有哪些
  • 学做网站需要什么软件极速网站建设定制
  • 黄岛网站建设哪家权威大连市建设厅网站
  • 网络公司网站样本腾讯网
  • 网站首页模板制作网站报价表格
  • 医院科室网站建设网站地图模板.zip
  • wordpress pdo mysql扩展青岛网站seo收费
  • 做网站花都区做百科需要用什么网站做参考
  • 网站建设心得总结wordpress 表分析
  • 网站优化千牛帮ajax wordpress 评论
  • 让网站打开更快公司起名字大全免费好听
  • 网站做适配wordpress 友链页面
  • 1高端网站建设网页怎么截图快捷键
  • 烟台网站排行榜评估网站建设方案
  • 做php网站的环境秦皇岛网站开发报价
  • 做网站软件wd一个主机域名可以做多少个网站
  • 淄博网站建设多noren wordpress
  • 中小网站建设都有哪些做网站链接
  • idea可以做网站吗电商网站新闻怎么做
  • 网站开发维护协议汽车门户网站建设
  • 创建网站费用十大wordpress主题
  • 定制级高端网站建设快速建站全流程详细指导手册
  • 广西住房与城乡建设厅网站首页网站内部优化工具