• Flutter Web 中的 WebAssembly 入门


    Flutter 使用 Skia 构建,这是一个用 C++ 编写的 2D 图形库。 Flutter 的 Skia 引擎使其能够跨各种平台(包括 Web)创建可移植且高性能的应用程序。

    大多数网络浏览器都理解 JavaScript 语言; 但是,Skia C++ API 可以通过 WebAssembly 在 Web 浏览器上运行。 WebAssembly 允许原生代码在浏览器中运行,方法是将其编译成浏览器可以理解的语言。

    在本教程中,我们将介绍 WebAssembly 并了解它的好处。 我们还将了解 Flutter 代码如何与 WebAssembly 绑定进行交互。

    • 什么是 WebAssembly?

    • 我们为什么要使用 WebAssembly?

    • Dart 和 WebAssembly 的互操作性

    • 在 Flutter Web 应用程序中使用 WebAssembly

      • 使用 AssemblyScript 生成 WebAssembly 模块

      • 在 Flutter 应用中使用 WebAssembly 模块

    什么是 WebAssembly?

    WebAssembly (Wasm) 是一种低级语言,以接近本机的性能运行。 它是一种具有紧凑二进制格式的虚拟堆栈机器,旨在成为高级语言的编译目标。

    WebAssembly 使工程师能够使用 C、C++、Rust 和其他在浏览器中运行的高级语言编写代码。 Wasm 将用高级语言编写的代码编译为 WebAssembly 模块。 然后将它们加载到 Web 应用程序中并使用 JavaScript 调用。

    浏览器可以快速将 WebAssembly 模块转换为任何机器的指令。

    我们为什么要使用 WebAssembly?

    JavaScript 一直是浏览器理解的主要语言。 但是,在运行 3D 游戏等资源密集型应用程序时,JavaScript 往往会变得迟缓。 对于此类应用程序,需要接近原生的体验。 这就是 Wasm 的用武之地。

    WebAssembly 与 JavaScript 一起工作,为我们的应用程序提供接近原生的速度。 由于模块体积小,Wasm 加载和执行速度更快,从而在 Web 上实现了高性能应用程序。

    Wasm 使我们能够构建快速、高性能、可移植和内存安全的应用程序。 这是一个开放标准,旨在在其他平台上运行,而不仅仅是网络。 许多流行的语言至少对 WebAssembly 有一些支持。


    超过 20 万开发人员使用 LogRocket 来创造更好的数字体验 了解更多 →


    Dart 和 WebAssembly 的互操作性

    Dart Web 平台使 Dart 代码能够在 JavaScript 支持的平台上编译和运行。 我们还可以在 Dart 代码中调用现有的 JavaScript 代码,这可以通过 js包裹。

    从 Dart 代码调用 JavaScript 代码和从 JavaScript 代码调用 Dart 代码的能力称为“Dart-JavaScript 互操作性”。

    这 js包提供注释和函数,让我们指定 Dart 代码如何与

  • 相关阅读:
    UTONMOS元宇宙游戏发展趋势是什么?
    iOS键盘通知弹框使用小结
    RFID技术引领汽车零部件加工新时代
    黑马Java八股文面试题视频教程,Java面试八股文宝典(基础篇)
    三年软件工程真题
    S-MBRec学习笔记-徐老师重新整理
    海淀区委网信办领导到中睿天下调研
    SpringBoot中单元测试的使用
    GPT对话代码库——HAL库下 USART 的配置及问题(STM32G431CBT6)
    【20220825】【数学基础】用最小二乘法求解超定方程组
  • 原文地址:https://blog.csdn.net/weixin_47967031/article/details/127114225