Разница между написанием кода для конкретной платформы и кода dart:ffi

В чем разница между написанием кода с использованием dart:ffi во флаттере или написанием кода с помощью метода chanel во флаттере.

1 ответ

Решение

dart:ffiиспользуется для вызова кода C/C++ - обычно для повторного использования существующей библиотеки C/C++ - часто операции с интенсивным использованием ЦП, например кодеков, обработки изображений, криптографии. Код C имеет ограниченный доступ к системным API.

Каналы методов используются для доступа к базовой среде и ее API - поэтому они написаны на Kotlin или Java на Android, Swift или Objective C на iOS и macOS и Dart во Flutter Web.

Так, например, если вы хотите узнать уровень заряда батареи устройства, вам необходимо использовать канал метода и реализовать вызов собственного API на его родном языке, например Java для Android. И наоборот, если вы хотите вызвать библиотеку C, которая реализует криптографический хеш, самый простой способ - использоватьffi.

Посмотрите видеоролики Flutter Week, чтобы узнать о новом использованииffi для вызова звуковой библиотеки Android NDK / Oboe.

Другие вопросы по тегам