Projeto de plug -in de Golang FFI para vibração
Este projeto é um ponto de partida para um plug -in FFI do Flutter, um pacote especializado que inclui código nativo diretamente chamado de DART FFI.
Este modelo usa a seguinte estrutura:
src : contém o código -fonte de Golang com Makefile que compila a biblioteca de código nativa para as várias plataformas de destino.
lib : contém o código do dardo que define a API do plug -in e que chama o código nativo usando dart:ffi .
PLATACT PASTERS ( android , ios , windows , etc.): contém os arquivos de construção para criar e agrupar a biblioteca de código nativo com o aplicativo da plataforma.
O pubspec.yaml especifica os plugins FFI da seguinte forma:
plugin :
platforms :
some_platform :
ffiPlugin : trueEssa configuração chama a construção nativa para as várias plataformas de destino e empacota os binários em aplicações de vibração usando esses plugins FFI.
Isso pode ser combinado com Dartpluginclass, como quando a FFI é usada para a implementação de uma plataforma em um plug -in federado:
plugin :
implements : some_other_plugin
platforms :
some_platform :
dartPluginClass : SomeClass
ffiPlugin : trueUm plugin pode ter canais de FFI e método:
plugin :
platforms :
some_platform :
pluginClass : SomeName
ffiPlugin : trueOs sistemas de construção nativa que são chamados de plugins FFI (e canal de método) são:
Para usar o código nativo, são necessárias ligações no DART. Para evitar gravá -los à mão, eles são gerados a partir do arquivo de cabeçalho ( src/libsum.h ) pelo package:ffigen . Regenere as ligações executando flutter pub run ffigen --config ffigen.yaml .
As funções nativas de curta duração podem ser invocadas diretamente de qualquer isolado. Por exemplo, consulte sum em lib/native_ffi.dart .