Android的未来-Flutter

Flutter的技术构建

Flutter 使用 C、C++、Dart 和 Skia (2D 渲染引擎) 构建

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

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

flutter构建模型

Flutter真正的跨平台技术

使用 Flutter 的话,从一开始就控制屏幕上的每个像素。Flutter 还内置一整套 widget,可以在 iOS 和 Android 上提供像素级的完美体验,代码会直接编译成目标 ARM 设备的机器代码,而不是像 JavaScript 那样需要隔着一层引擎运行。

Flutter 中的每个像素都是使用 Skia 图形引擎绘制的,这是一种 Android 和 Chrome 都在使用的硬件加速引擎。这可以让应用具备快速稳定的性能表现,应用可以以每秒 60 帧的速率在手机屏幕上运行,即使在配置较低的设备上也不会感到卡顿。

在Flutter之前的跨平台实现主要是:

  • H5
  • RN
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文这篇文章主要提供Flutter架构的一个概览,包括设计它的核心原则和理念。 Flutter是一个跨平台UI工具...
    CyrusChan阅读 3,116评论 0 2
  • Flutter是开源并且免费的,拥有现代的响应式框架特性,高速的2D渲染引擎,方便快捷的开发工具以及各种开箱即用的...
    luehning阅读 582评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,566评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,610评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 2,774评论 1 1