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
网友评论