用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
云原生
›
Flutter框架分析(一)--架构总览
Flutter框架分析(一)--架构总览
tsx81428
论坛元老
|
2024-6-11 09:55:33
|
显示全部楼层
|
阅读模式
楼主
主题
1807
|
帖子
1807
|
积分
5423
Flutter被设计成一个可扩展,分层的体系。它包罗了一系列依赖其下层的独立库。其示意图见下图.
其中,framework层中的每一个组件均是可选的和可以代替的。从上图可知,Flutter体系统共可以分为三层。上层的框架(Framework),中层的引擎(Engine),以及底层的嵌入层(Embedder)。
框架(Framework):框架层是纯dart语言实现的一个响应式框架,
开发
者平常需要通过该层和Flutter体系交互。
引擎(Engine):引擎层绝大部门是用C++实现的,其为Flutter体系的核心。引擎提供了一系列Flutter核心API的底层实现,比方图形(通过Skia),文字布局,文件等,是连接框架和体系(Andoird/iOS)的桥梁。
嵌入层(Embedder):嵌入层基本是由平台对应的语言实现的,比方:在Android上是由Java和C++实现;在iOS是由Objective-C/Objective-C++实现。嵌入层为Flutter体系提供了一个入口,Flutter体系通过该入口访问底层体系提供的服务,比方输入法,绘制surface等。
其中,Framework是我们这一系列文章主要关注的部门。从下到上,其主要包罗:
基础模块(foundational)及基础服务,比方animation,painting,以及gestures,这三种基础服务是为了方便上层调用对基础模块的抽象。
Rendering 层,为处理图层提供了抽象组件。通过这一层,你能构建一棵可绘制对象的树。你可以动态操纵这些对象,这棵树可以根据你的修改主动更新这棵树。
Widgets层,是组件的抽象。每个render对象都有对应的widget对象。除此之外,widgets层答应你定义你能重复使用的组合组件。同时,此层引入了响应式编程模型。
Material和Cupertino库提供了一系列Material和iOS设计风格的组件。
3. 不同跨平台技能对比
市面上有很多对比不同跨平台技能的文章,比方Flutter实战中的移动
开发
技能简介。本文以表格情势简单先容一下不同跨平台技能的特点和优劣势等,然后说明一下flutter性能能媲美原生应用的缘故原由。 现在市面上主要有H5+原生,JavaScript+原生渲染,自绘UI+原生。三种跨平台技能,其对比结果如下。
技能范例UI渲染方式性能
开发
服从动态化框架代表H5+原生WebView渲染一般高支持Cordova、IonicJavaScript+原生渲染原生控件渲染好高支持RN、Weex自绘UI+原生自带引擎渲染非常好Flutter高, QT低默认不支持QT、Flutter
由图可见,Flutter最大的优势,是其出色的性能。根据Google官方的宣传,其性能是可以媲美原生的。这一点我们可以通过以下结构示意图看出来。
原生应用是由其框架直接通过Skia调用GPU进行绘制,但是RN等JavaScript+原生渲染跨平台技能是需要由其框架先调用原生框架,再通过原生框架调用Skia,最后调用至GPU进行绘制的。因此,其调用步调上相对于原生多了一层,理论上其绘制性能将比原生差。 但是Flutter则不同,由于其应用也是由Flutter框架直接通过Skia调用GPU进行绘制,因此只要其框架的性能能媲美原生框架的性能,则其绘制性能就可以媲美原生。不仅如此,由于Skia是Flutter自带的,其升级非常方便,而Android体系相对而言升级比较缓慢,因此假如Flutter使用了更高性能的Skia库,其绘制性能甚至可能超过原生。
4. 小结
本文主要先容了Flutter框架体系,其中重点先容了Flutter的Framework层结构。之后对比了Flutter和其他跨平台技能,并通过它们绘制原理的对比分析,解释了Flutter性能可以媲美原生应用的缘故原由。
5. 相关文章
自我先容一下,小编13年上海交大结业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提拔技能,每每是本身摸索发展或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。本身不成体系的自学结果低效又漫长,而且极易碰到天花板技能故步自封!
因此收集整理了一份《2024年Android移动
开发
全套学习资料》,初志也很简单,就是希望可以或许帮助到想自学提拔又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提拔的进阶课程,基本涵盖了95%以上Android
开发
知识点,真正体系化!
由于文件比较大,这里只是将部门目次截图出来,每个节点里面都包罗大厂面经、学习笔记、源码课本、实战项目、讲解视频,并且会持续更新!
假如你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
文末
对于很多初中级Android工程师而言,想要提拔技能,每每是本身摸索发展,不成体系的学习结果低效漫长且无助。 整理的这些架构技能希望对Android
开发
的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与发展,其余的都不紧张,希望读者们能服膺这一点。
最后想要拿高薪实现技能提拔薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,如许学习起来最为高效,所以为了大家可以或许顺遂进阶中高级、架构师,我特地为大家预备了一套高手学习的源码和框架视频等精品Android架构师教程,包管你学了以后包管薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
进阶学习视频
附上:我们之前因为秋招收集的二十套一二线互联网公司Android口试真题
(含BAT、小米、华为、美团、滴滴)和我本身整理Android复习笔记(包罗Android基础知识点、Android扩展知识点、Android源码分析、设计模式汇总、Gradle知识点、常见算法题汇总。)
《Android学习笔记总结+移动架构视频+大厂口试真题+项目实战源码》,点击传送门即可获取!
+移动架构视频+大厂口试真题+项目实战源码》,点击传送门即可获取!**
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
tsx81428
论坛元老
这个人很懒什么都没写!
楼主热帖
【pandas小技巧】--读取多个文件 ...
【参考】开发工程师职级与职级界定-职 ...
【毕业季】纸短情长,浅谈大二以前的学 ...
读SQL进阶教程笔记06_外连接
mysql修改表字段长度
kubernetes之镜像拉取策略ImagePullSec ...
BinaryBombs(二进制炸弹实验) ...
MySQL与Redis数据双写一致性工程落地案 ...
Apache Shiro反序列化漏洞(Shiro550) ...
计算机系统装配与集成实验
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
容器及微服务
虚拟化与私有云
快速回复
返回顶部
返回列表