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

Flutter 简述(1)

Flutter 简述

简述

Flutter是Google开源的应用框架,只要一套代码兼顾Android、iOS、Web、Windows、macOS和Linux六个平台,它的设计思路可以说更加先进,不像ReactNative每个组件都需要有对应的原生组件实现,而是通过skia或者其他的渲染引擎来直接渲染画面,Flutter使用dart虚拟机来实现跨平台管理UI。
在dart上,会通过Widget构建Element,然后Element会构建RendorObject,然后RendorObject渲染的时候通过canvas来调用底层渲染引擎做最终的绘制。
直接使用渲染引擎来实现跨平台UI渲染,当需要实现复杂定制化UI时,我们依旧只需要实现一套UI,不需要在每个平台使用一个原生组件单独实现,切在性能方面也会有更好的表现,相当于节约了原生层面UI管理的工作量。

框架结构

  • dart虚拟机
    Flutter的UI是使用dart实现的,也是通过dart来实现跨平台,dart语言和kotlin比较相似,所以对于Android应用开发的同学,上手Flutter还是比较简单的。
    dart语言可以编译成各个平台的二进制程序,也可以编译成各个JS。且dart即可以支持JIT编译模式,也支持AOT编译模式。JIT编译模式可以支撑Flutter热加载,而AOT可以编译成可预期高效的程序,作为UI渲染使用更多语言,可预期是很重要的,需要稳定,否则就会出现掉帧。
  • 渲染引擎
    早期的Flutter使用的渲染引起是skia,Android之前也是使用skia来处理2D渲染。后面Flutter推出了Impeller,Impeller是Flutter推出的渲染引擎。Impeller是专门为Flutter设计的渲染引擎,支持使用OpenGL和Vulkan,优化了渲染流程以及对GPU对使用效率。

涉及内容

Flutter的架构很简单,就是使用dart来统一语言平台,然后使用渲染引擎绘制UI,所以我们主要来研究一下dart层的逻辑,学习一下Flutter是怎么实现UI的管理,包括Touch事件传递,与其他模块交互等等。

  • Flutter 启动流程
  • Flutter UI构建
  • Flutter 渲染
  • Flutter Touch事件传递
  • 。。。
http://www.lryc.cn/news/474903.html

相关文章:

  • BGP实验--BGP路由反射器
  • 域渗透-域环境部署
  • 【Oracle】空格单字符通配符查询匹配失败
  • uniapp实现中间平滑凸起tabbar
  • 【视频】OpenCV:识别颜色、绘制轮廓
  • C++_STL_xx_番外01_关于STL的总结(常见容器的总结;关联式容器分类及特点;二叉树、二叉搜索树、AVL树(平衡二叉搜索树)、B树、红黑树)
  • xlrd.biffh.XLRDError: Excel xlsx file; not supported
  • ENNSP中ACL的实验配置
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day8
  • 【AI开源项目】FastGPT- 快速部署FastGPT以及使用知识库的两种方式!
  • 信息学科平台系统开发:Spring Boot实用指南
  • 笔记本电脑买i7还是i9?i7和i9处理器区别详细介绍
  • Netty原来就是这样啊(一)
  • 量子容错计算
  • QGraphics View坐标系
  • 繁星之下--
  • Transformer+KAN系列时间序列预测代码
  • vue项目安装组件失败解决方法
  • C++ [项目] 躺平发育
  • [产品管理-55]:产品设计不仅仅完成功能,即可用性设计,还需要完成可生产性、可装配性、可维护性、可回收性、可服务性设计
  • Mount Image Pro,在取证安全的环境中挂载和访问镜像文件内容
  • 玩转Docker | Docker基础入门与常用命令指南
  • 【MySQL】MySQL安装以及各种报错处理
  • 【传知代码】图像处理解决种子计数方法
  • WPF 特性------Binding
  • 深入解析 FastAPI 查询参数:配置、类型转换与灵活组合
  • 大学城水电管理系统开发:Spring Boot指南
  • Lua 从基础入门到精通(非常详细)
  • [MySQL#11] 索引底层(2) | B+树 | 索引的CURD | 全文索引
  • 一个指针可以被声明为 `volatile`