【Flutter入门到进阶】跨平台相关---Flutter的选择

16 篇文章 10 订阅
10 篇文章 1 订阅

1.回顾Android渲染机制工作流程

1.1  图例

1.2 说明 

1.Android内部自己通过skia引起完成图像构建

2.Android通过surfacefilinger来完成图像与驱动之间的处理 

2 自建渲染引擎渲染方案

        自建渲染引擎渲染方案,是有别于Web渲染采用WebView容器进行渲染UI、原生渲染通过Bridge方式转化为原生控件渲染UI等方案,另辟蹊径通过自建渲染引擎方式,直接从底层 渲染上实现UI的绘制,而Flutter就是跨平台、自渲染的代表。

2.1 结构

 2.1.1 图例

 2.1.2 说明

1、Dart App 层

        最顶层是 Dart App 层,以 Widget 为基本视图描述单元,构建起 UI 体系

2、Flutter Framework 层

        内置基础的 Flutter 组件,并根据不同平台的视觉风格体系,封装 Material 和 Cupertino 两套 UI 库供上层使用

3、Flutter Engine 层

        Flutter 框架的核心所在,包括 Dart 虚拟机、Skia 跨平台渲染引擎、文字排版、平台通道等,通过 Engine 层,建立起 Dart App 层和原生平台之间联系,从而实现二者的双向通信

4、Embedder 层

        平台嵌入层为 Flutter App 提供宿主环境、线程创建以及基于插件机制的原生能力扩展等,Flutter 在打包的时候,将 Dart 业务代码和 Flutter Engine 代码基于 iOS/Android 不同平台分别进行打包。Native 在启动时会通过调用 C++ 的各自实现(Java 通过 JNI,OC 天然支持)初始化 Flutter Engine 层提供的接口,创建 UI/GPU/IO 三个线程和实例化 Dart VM。Dart 业务代码在 Release 模式下采用 AOT 的方式进行编译,并运行在 Dart VM 中

2.2 总结 

        1、Flutter通过Dart解决代码适配问题

        2、Flutter通过Framework解决UI风格不统一问题 

        3、Flutter通过自建渲染引擎,绕过Android和iOS的绘制流程,完成图片的生成

        4、Flutter通过嵌入层完成对于不同系统的图像数据推送方案

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__Yvan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值