Разница между написанием кода для конкретной платформы и кода 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.