Flutter 용 Golang FFI 플러그인 프로젝트
이 프로젝트는 DART FFI로 직접 호출 된 기본 코드를 포함하는 특수 패키지 인 Flutter FFI 플러그인의 출발점입니다.
이 템플릿은 다음 구조를 사용합니다.
src : 다양한 대상 플랫폼에 대한 기본 코드 라이브러리를 컴파일하는 MakeFile과 함께 Golang 소스 코드를 포함합니다.
lib : 플러그인의 API를 정의하고 dart:ffi 사용하여 기본 코드로 호출하는 다트 코드가 포함되어 있습니다.
플랫폼 폴더 ( android , ios , windows 등) : 플랫폼 애플리케이션과 함께 기본 코드 라이브러리를 빌드 및 번들링하기위한 빌드 파일이 포함되어 있습니다.
pubspec.yaml 다음과 같이 FFI 플러그인을 지정합니다.
plugin :
platforms :
some_platform :
ffiPlugin : true이 구성은 다양한 대상 플랫폼의 기본 빌드를 호출 하고이 FFI 플러그인을 사용하여 플러터 애플리케이션에서 바이너리를 묶습니다.
이것은 FFI가 연합 플러그인에서 하나의 플랫폼을 구현하는 데 사용될 때와 같은 다트 플러그 인 클래스와 결합 할 수 있습니다.
plugin :
implements : some_other_plugin
platforms :
some_platform :
dartPluginClass : SomeClass
ffiPlugin : true플러그인에는 FFI 및 메소드 채널이 모두있을 수 있습니다.
plugin :
platforms :
some_platform :
pluginClass : SomeName
ffiPlugin : trueFFI (및 Method Channel) 플러그인에 의해 호출되는 기본 빌드 시스템은 다음과 같습니다.
기본 코드를 사용하려면 다트의 바인딩이 필요합니다. 이것들을 손으로 쓰지 않기 위해 package:ffigen 으로 헤더 파일 ( src/libsum.h )에서 생성됩니다. flutter pub run ffigen --config ffigen.yaml 실행하여 바인딩을 재생합니다.
매우 짧은 실행 기본 기능은 모든 분리 물에서 직접 호출 될 수 있습니다. 예를 들어, lib/native_ffi.dart 의 sum 참조하십시오.