• 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 代码如何与

  • 相关阅读:
    css大屏转动效果
    Thrift快速入门和简单示例
    基于ssm的线上旅行信息管理系统(有报告)。Javaee项目,ssm项目。
    低代码与无代码平台的选型建议
    ctf之:《kali-linux-2022-W48-virtualbox-amd64》工具测试netdiscover
    Open3D(C++) 网格变形
    九州云亮相全球边缘计算大会,深耕边缘领域赋能产业未来新生态
    记 QT => ubuntu下QT可编译通过不可以运行图形界面
    【话题】人工智能迷惑行为大赏
    多参数训练Isolation Forest
  • 原文地址:https://blog.csdn.net/weixin_47967031/article/details/127114225