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

Pra*_*ite 5 dart flutter dart-ffi

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

Ric*_*eap 4

dart:ffi用于调用 C/C++ 代码 - 通常是为了重用现有的 C/C++ 库 - 通常是 CPU 密集型操作,例如编解码器、图像处理、加密。C 代码对系统 API 的访问受到限制。

方法通道用于访问底层环境及其 API - 因此在 Android 上使用 Kotlin 或 Java,在 iOS 和 macOS 上使用 Swift 或 Objective C 编写,在 Flutter Web 上使用 Dart 编写。

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

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