Flutter 之 wasm交互

1,085 阅读1分钟

前言

wasm是一个可移植、体积小、加载快并且兼容 Web 的全新格式,可以很好地兼容不同平台之间插件的调用,本篇文章将简单介绍如何简单构建一个wasm文件,以及如何在flutter中读取wasm文件,并调用相关方法

Flutter 中使用 wasm

flutter pub add wasm

创建一个c文件

int square(int n) { return n * n; }

编译wasm方式

  • clang编译
clang --target=wasm32 -nostdlib "-Wl,--export-all" "-Wl,--no-entry" -o square.wasm square.c

Flutter 读取wasm文件调用方法

     final data = File('assets/wasm/square.wasm').readAsBytesSync();
     final mod = WasmModule(data);
     print(mod.describe());
     final inst = mod.builder().build();
     final square = inst.lookupFunction('square');
     print(square(13));

打印的数据