我正在使用Flutter(针对Android)开发一个应用程序,其核心基于仅在C++和Python中开发的库。因此,我想知道如何在我的Dart代码中使用此库(无论是C++版本还是Python版本)。
来自@FacundoFarall对原问题的评论:
试试看 Richard Heap 的这个视频,它帮助了我很多。他通过一个例子解释了如何通过dart:ffi在Flutter应用程序的Dart代码和您使用的C++库之间进行交互。我还建议查看这个帖子,以了解一种在运行Flutter应用程序时调试C ++代码的方法。
今天发布了Dart 2.5(和Flutter 1.9)。 Dart 2.5 中的一个添加是“dart:ffi外部函数接口,可以直接从Dart调用C代码。” 我还没有检查它,但它应该提供与C(和C ++)代码交互的更直接的路径。
另请参阅宣布视频(确认新旧两种方法)。
我会看一下平台通道,它是将Flutter代码与平台本地代码(例如Android上的Java / Kotlin,在iOS中的Objective C / Swift)进行通信的一种方式。从那里,您可以使用常规NDK机制使用C ++库。
您可以查看Flutter平台通道和入门指南。
也许有更直接的路线,但这是我知道可以工作的方法。
dart:ffi
在Flutter应用程序中的Dart代码和您正在使用的C++库之间进行交互。我还建议查看这篇文章,以了解在运行Flutter应用程序时如何调试C++代码的方法。 - Facundo Farall