Flutter之我们需要掌握的知识点

Flutter是一套高效的跨平台免费开源SDK,可支持在移动端的Android、iOS进行开发,也支持Web桌面端、嵌入式界面开发。现在已经更新到1.5版本,下面来介绍Flutter概念、Flutter能够做什么、Flutter使用什么语言开发、Flutter框架、Flutter构建原理、Flutter如何在Android与iOS运行等等。

一、Flutter是什么

Flutter是Google的移动应用SDK,用于在Android和iOS平台创建高质量的原生体验。直至现在更新到1.5版本,可支持Web桌面端与嵌入式界面开发。

二、Flutter能够做什么

对于应用的用户来说,Flutter可以让他们体验到美观灵活的UI界面。

对于我们开发者来说,Flutter降低了创建移动应用的门槛。它加速了移动应用的开发,降低了兼顾Android和iOS应用开发的成本和复杂性。

对于设计师而言,Flutter可以确保精确地实现设计意图,而无需降低保真度或被迫进行妥协。在设计师的手中,Flutter还可以作为一种高效的原型设计工具。

三、Flutter特点

Flutter与大多数用来构建移动应用的工具不同,因为它既不使用WebView,也不使用设备附带的OEM Widget,而是使用自己的高性能渲染引擎来绘制Widget。

Flutter与其它工具不同之处在于,它只有一层简洁的C/C++代码,在这之上,Flutter使用Dart(一种现代化的、简洁的面向对象语言)实现大部分系统功能(布局、手势、动画、框架、Widget等),这种语言使得开发者可以轻松地进行阅读、更改、替换或删除。

四、Flutter的SDK构成

1、高度优化的针对移动应用的2D渲染引擎,更具备出色的文字支持能力;

2、现代化的React风格框架

3、适用于Android和iOS的丰富Widget;

4、用于单元和集成测试的API;

5、用于连接系统和第三方SDK的互操作及插件API;

6、无界面(headless)测试运行器,用于在Windows、Linux和Mac上的运行测试;

7、命令行工具,用于创建、构建、测试和编译应用;

五、Flutter构建原理

Flutter使用C、C++、Dart和Skia(2D渲染引擎)构建,如下图所示:

六、Flutter在Android上运行

引擎的C、C++代码使用Android的NDK进行编译。Dart代码都是预先(Ahead Of Time,AOT)编译成本地ARM及x86库。这些库被包含在一个Android"runner"项目中,然后整套内容被编译成一个APK。当应用启动时,它会加载Flutter 库。任何渲染、输入或事件处理等都会delegate给编译好的Flutter和应用代码。这个 工作机制与许多游戏引擎颇为类似。

调试模式时则使用虚拟机来运行代码Dart(此时会显示“Debug”字样,以提醒开发者速度会稍微变慢),这样便可以启用有状态热重载(Stateful Hot Reload)

七、Flutter在iOS上运行

引擎的C、C++代码使用iOS的LLVM进行编译。Dart代码都是预先(Ahead Of Time,AOT)编译成本地ARM库。这些库被包含在一个iOS"runner"项目中,然后整套内容被编译成一个ipa。当应用启动时,它会加载Flutter 库。任何渲染、输入或事件处理等都会delegate给编译好的Flutter和应用代码。

发布了63 篇原创文章 · 获赞 179 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/u011686167/article/details/90145660