编写特定于平台的代码与 dart:ffi 代码之间的区别

Difference between writing platform specific code vs dart:ffi code

在flutter中使用dart:ffi写代码和在flutter中使用方法chanel写代码有什么区别

dart:ffi 用于调用 C/C++ 代码 - 通常重用现有的 C/C++ 库 - 通常是 CPU 密集型操作,如编解码器,图像处理,密码学。 C 代码对系统的访问受限 APIs.

方法通道用于访问底层环境及其 APIs - 因此在 Android、Swift 或 [=24 上用 Kotlin 或 Java 编写=] iOS 以及 Flutter Web 中的 macOS 和 Dart。

因此,例如,如果您想读取设备的电池电量,则需要使用方法通道并以其本地语言实现本地 API 调用,例如Java 对于 Android。相反,如果要调用实现加密哈希的 C 库,最简单的方法是使用 ffi.

查看 Flutter Week videos,了解 ffi 调用 Android NDK/Oboe 音频库的新颖用法。