【15章】慕课甄选-2024年Flutter零基础极速入门到进阶实战

笑面虎
• 阅读 265

【15章】慕课甄选-2024年Flutter零基础极速入门到进阶实战 【15章】慕课甄选-2024年Flutter零基础极速入门到进阶实战

视频课程下载——慕课甄选-2024年Flutter零基础极速入门到进阶实战,附源码,课程包更新。

Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。 [5]Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。

Flutter的高性能主要靠两点来保证: 采用 Dart 语言开发 使用自己的渲染引擎来绘制 UI

Dart语言在JIT模式下,执行速度与 JavaScript 基本持平。但是它支持AOT,以 AOT模式运行时,JavaScript 便远远追不上了,执行效率也就大大提升。并且Flutter使用自己的渲染引擎绘制UI,布局数据都由Dart语言直接控制,性能开销比较可观

Flutter框架分三层 Framework,Engine, Embedder Flutter Framework Framework使用dart语言实现,包括UI,文本,图片,按钮等Widgets,渲染,动画,手势等。此部分的核心代码是flutter仓库下的flutter package,以及sky_engine仓库下的 io, async, ui(dart:ui库提供了Flutter框架和引擎之间的接口)等package。 Flutter Engine Engine使用C++实现,主要包括:Skia, Dart 和 Text。 Skia是开源的二维图形库,提供了适用于多种软硬件平台的通用API。其已作为Google Chrome,Chrome OS,Android, Mozilla Firefox, Firefox OS等其他众多产品的图形引擎,支持平台还包括Windows, macOS, iOS,Android,Ubuntu等。 Dart 部分主要包括:Dart Runtime,Garbage Collection(GC),如果是Debug模式的话,还包括JIT(Just In Time)支持。Release和Profile模式下,是AOT(Ahead Of Time)编译成了原生的arm代码,并不存在JIT部分。 Text 即文本渲染,其渲染层次如下:衍生自 Minikin的libtxt库(用于字体选择,分隔行);HartBuzz用于字形选择和成型;Skia作为渲染/GPU后端,在Android和Fuchsia上使用FreeType渲染,在iOS上使用CoreGraphics来渲染字体。 Embedder Embedder是一个嵌入层,通过该层把Flutter嵌入到各个平台上去,Embedder的主要工作包括渲染Surface设置, 线程设置,以及插件等。平台(如iOS)只是提供一个画布,剩余的所有渲染相关的逻辑都在Flutter内部,这就使得它具有了很好的跨端一致性。

Flutter与其它大多数跨平台框架不同,因为Flutter既不使用WebView,也不使用操作系统的原生控件。相反,Flutter使用自己的高性能渲染引擎来绘制widget。这样不仅可以保证在Android和iOS上UI的一致性,而且也可以避免对原生控件依赖而带来的限制及高昂的维护成本。 Flutter使用Skia作为其2D渲染引擎,Skia是一个 2D的绘图引擎库,其前身是一个向量绘图软件,Chrome和 Android均采用 Skia作为绘图引擎。Skia提供了非常友好的 API,并且在图形转换、文字渲染、位图渲染方面都提供了友好、高效的表现。Skia是跨平台的,所以可以被嵌入到 Flutter的 iOS SDK中,而不用去研究 iOS闭源的 Core Graphics / Core Animation。 目前Flutter默认支持iOS、Android、Fuchsia(Google新的自研操作系统)三个移动平台。但Flutter亦可支持Web开发(Flutter for web)和PC开发,本书的示例和介绍主要是基于iOS和Android平台的,其它平台读者可以自行了解。

Flutter的优势 开发效率高毫秒级的热重载,修改后,您的应用界面会立即更新。使用丰富的、完全可定制的widget在几分钟内构建原生界面。 富有表现力和灵活的UI快速发布聚焦于原生体验的功能。分层的架构允许您完全自定义,从而实现难以置信的快速渲染和富有表现力、灵活的设计。 原生性能Flutter包含了许多核心的widget,如滚动、导航、图标和字体等,这些都可以在iOS和Android上达到原生应用一样的性能。 Flutter的开发语言 Flutter采用的是Dart作为开发框架和widget的语言。

Dart在以下主要标准上得到高分: 开发人员的效率Flutter的主要价值主张之一是通过让开发人员使用相同的代码库为iOS和Android创建应用程序,从而节省了工程资源。使用高效的语言可以进一步加速开发周期,并使Flutter更具吸引力。这对我们的framework团队和开发人员都非常重要。大部分Flutter功能都是用Dart实现,因此我们需要在10万行代码时能保持高效的而不会牺牲framework和widget的可读性。 面向对象虽然我们可以使用非面向对象的语言,但这意味着要重新解决几个难题。另外,绝大多数开发人员都具有面向对象开发的经验,因此更容易学习如何使用Flutter进行开发。 可预测,高性。借助Flutter,我们希望使开发人员能够快速创建流畅的用户体验。为了实现这一点,我们需要能够在每个动画帧中运行大量的代码。这意味着我们需要一种既能提供高性能又能提供可预测性能的语言,而不会出现会导致丢帧的周期性暂停。 快速内存分配 Flutter框架使用函数式流,它很大程度上依赖于底层的内存分配器,从而有效地处理小的、短期的内存分配会非常重要,所以在缺乏此功能的语言中Flutter无法有效地工作。

点赞
收藏
评论区
推荐文章
程昱 程昱
2个月前
MK甄选-2024年Flutter零基础极速入门到进阶实战「同步更新中」
MK甄选2024年Flutter零基础极速入门到进阶实战「同步更新中」download》quangneng.com/4930/2024年Flutter零基础极速入门到进阶实战Flutter是Google开发的一款用于构建高性能、高美观度的移动应用开发框架。
乐和 乐和
1个月前
MK甄选-2024年Flutter零基础极速入门到进阶实战「同步更新中」
MK甄选2024年Flutter零基础极速入门到进阶实战「同步更新中」download》chaoxingit.com/4904/Flutter零基础极速入门到进阶实战一、引言在当今的移动应用开发领域,Flutter凭借其卓越的性能和易用性,已经成为了开发者
乐和 乐和
1个月前
MK甄选-2024年Flutter零基础极速入门到进阶实战「同步更新中」
MK甄选2024年Flutter零基础极速入门到进阶实战「同步更新中」download》shanxueit.com/4705/介绍Flutter的概念和特点。Flutter是Google开发的一款开源移动UI工具包,用于构建高性能、高保真的移动应用界面。它
臧霸 臧霸
1个月前
MK甄选-2024年Flutter零基础极速入门到进阶实战[同步更新中]
download://itzx666.com/9259/《MK甄选2024年Flutter零基础极速入门到进阶实战同步更新中》是一门专注于教授Flutter移动应用开发的培训课程。该课程旨在帮助零基础的学员快速入门Flutter,并逐步深入到进阶实战的
乐和 乐和
1个月前
MK甄选-2024年Flutter零基础极速入门到进阶实战「同步更新中」
MK甄选2024年Flutter零基础极速入门到进阶实战「同步更新中」download》chaoxingit.com/4904/引言随着移动互联网的发展,越来越多的开发者选择使用Flutter框架来构建跨平台的移动应用。Flutter是由Google推出的
韦康 韦康
1个月前
MK甄选-2024年Flutter零基础极速入门到进阶实战[同步更新中]
MK甄选2024年Flutter零基础极速入门到进阶实战同步更新中download》itzcw.com/9259/关于Flutter零基础极速入门到进阶实战的介绍Flutter零基础极速入门到进阶实战Flutter是一种跨平台的移动应用开发框架,具有快
笑面虎 笑面虎
4星期前
【完结17章】慕课甄选-2024年Flutter零基础极速入门到进阶实战
【完结17章】慕课甄选2024年Flutter零基础极速入门到进阶实战Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。5Flutter开源、免费,拥有宽松
光之守卫 光之守卫
3星期前
MK甄选-2024年Flutter零基础极速入门到进阶实战「同步更新中」
MK甄选2024年Flutter零基础极速入门到进阶实战「同步更新中」download》quangneng.com/4930/Flutter零基础极速入门到进阶实战的概述Flutter是一个跨平台的移动应用开发框架,可以让开发者使用一套代码基于Dart语言
程秉 程秉
3星期前
MK甄选-2024年Flutter零基础极速入门到进阶实战[同步更新中]
MK甄选2024年Flutter零基础极速入门到进阶实战同步更新中download》chaoxingit.com/4904/Flutter零基础极速入门到进阶实战的基础知识Flutter是一个由Google开发的开源UI工具包,用于构建跨平台的移动应用
陈元 陈元
2星期前
MK甄选-2024年Flutter零基础极速入门到进阶实战(完结)
MK甄选2024年Flutter零基础极速入门到进阶实战(完结)download》quangneng.com/4930/MK甄选2024年Flutter零基础极速入门到进阶实战课程简介MK甄选推出的2024年Flutter零基础极速入门到进阶实战课程,旨在