Перейти к содержимому

Пост канала

Мобильная разработка
  1. фото

    Код на C во Flutter дёргается из Dart напрямую, без обвязки под каждую платформу Готовый код на C в приложении (кодек, крипта, обработка картинок) обычно заворачивают в platform channel, и обвязку пишут дважды: под Android и под iOS. Dart FFI этот слой убирает, Dart вызывает C-функцию сам. Цена: сигнатуры руками. На каждую функцию объявляете два typedef, один в типах FFI (Int32 Function(Int32, Int32)), второй в дартовых (int Function(int, int)). А функция в библиотеке должна быть с C-совместимым ABI, иначе Dart не найдёт символ. Загрузка зависит от платформы: на Android библиотека открывается по имени файла, DynamicLibrary.open('libnative_math.so'), в остальных случаях символ ищут в самом процессе приложения, DynamicLibrary.process(). Туториал на dev.to собирает минимальный проект и говорит, где FFI не нужен: под платформенные API Android и iOS ближе platform channels. #flutter

    Открыть в MAX
    Просмотры
    41
    ER
    —
    Реакции
    —