问题标签 [dart-ffi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
541 浏览

android - Flutter C++ 内存分配导致光栅线程卡顿 - Android NDK Dart FFI

我有一个颤振应用程序,用于Dart ffi连接到我的自定义 C++ 音频后端。在那里,我为我的音频缓冲区分配了大约 10MB 的总内存。每个缓冲区有 10MB / 84 的内存。我使用 84 音频播放器。这是 ffi 流程:

C++ 桥:

在我的声音引擎中,我启动了一个 C++ 线程:

所以这就是问题所在,我不知道为什么,但是当我new甚至在 C++ 线程内使用关键字分配内存时,会出现光栅线程卡顿,我可以看到我的抖动 UI 卡顿了很多帧。这也存在于性能叠加中,因为它会在 3 到 5 帧内全部变为红色,每帧大约需要 30 40 毫秒。在配置文件模式下测试。

这是我得出这个结论的方法:如果我立即从我的内存分配代码中返回startDecoderWorkernew那么当我这样做时,就会出现 0 jank。一切都顺利 60fps,性能叠加没有显示红条。

以下是个人资料模式的一些屏幕截图:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
133 浏览

android - Dart FFI - 从 C++ 调用 Dart 函数

我正在制作一个使用 dart ffi 与 C++ 通信的应用程序。我的主要问题是我想从我的 C++ 端获取分析报告。为此,我正在使用FlutterFire - firebase analytics. 问题是我需要从 C++ 调用 Dart,以便我可以将日志请求发送到分析。

我实现了这个例子。问题是,由于 dart 是单线程语言,如果我从另一个 C++ 线程调用 Dart 回调,应用程序会崩溃,因为它打破了 dart 单线程假设。

将我的 C++ 端的内容记录到的最佳方法是FlutterFire - firebase analytics什么?有人能引导我走向正确的方向吗?

0 投票
1 回答
593 浏览

flutter - 使用 Dart::ffi 在 Flutter 包中使用 Native Functions 测试库函数

我正在编写一个 Dart 库来使用 Flutter 访问 C 共享对象。

到目前为止,我创建的示例应用程序(在某种程度上)按预期工作,但我想包括单元测试也让库保持稳定。

细节:

  • 共享对象在 APP/android/src/main/jniLibs/{abi}/liboqs.so
  • example/lib/main.dart 中的示例应用程序并按预期工作
  • 库位于 APP/lib/liboqs_flutter.dart

图书馆使用

设置库。

但是当我尝试使用flutter_test访问这个库时(例如运行运行静态最终C本机函数OQS_init的init函数LiboqsFlutter.init(),我得到:

我知道颤振测试无法访问“主要”资产,但我该如何强制通过它,以便我可以正确测试我的代码?

这个问题提供了两种解决方案

但我并不完全了解如何让这些对我有用。颤振驱动程序如何在这里帮助我?应该将#2 代码添加到测试中还是原始库中并在测试中调用?如果我已经在 main/jniLibs 文件夹中预建了共享对象,我真的需要在测试时重建项目吗?这似乎浪费了很多时间来测试应用程序。

0 投票
0 回答
558 浏览

flutter - 如何在 Flutter 中使用 dart:ffi?

我被困在如何在 Flutter 中实现dart::ffi ,特别是hello_world 示例

从基本flutter create项目(和已经编译的hello_world.dll)开始,只是尝试:

导致:

我是否还需要一个.dylib版本,例如示例中的内容?

0 投票
1 回答
683 浏览

dart - Flutter-Desktop sqflite ffi 在发布模式下抛出错误

我在桌面窗口上为我的数据库使用sqflite ffi 。我设置了示例中的所有内容。该应用程序正在调试构建,但如果我在发布模式下运行该应用程序,我会在sqfliteFfiInit(). 我该如何解决?

0 投票
1 回答
659 浏览

c - 如何在颤动中运行 ac 静态链接库(.a 存档)?

我正在尝试在我的颤振应用程序中包含一个 C 库。我有一些 .h 文件和一个 .a 文件。如果我理解正确, .h 文件是标题,而 .a 文件是静态链接库。

我的目标是将该库中的一些函数运行到我的颤振代码中,但我发现颤振文档非常不清楚如何做到这一点。我对C一无所知,所以我真的很难理解代码,而且我真的不知道从哪里开始。

我的问题是:是否可以在颤振应用程序中从 .a 文件运行代码,我该怎么做?还是我需要 .so 文件或源代码?

0 投票
1 回答
141 浏览

flutter - 使用 Flutter 2.0 / Dart 12 在 flutter_openvpn 中构建 win32 插件错误

为 iOS 构建应用程序时出现此错误:Command PhaseScriptExecution failed with a nonzero exit code.

Xcode 中构建错误的屏幕截图

0 投票
0 回答
67 浏览

ios - dart:ffi 用于 NSURLSession

NSURLSession是否可以通过 dart 中的 FFI访问和相关类型?我想在 iOS 上将此绑定与 Flutter 一起使用。

如果是,可以这样做dart:ffigen吗?我将如何配置它?ffi 有很多示例,但我没有找到访问系统框架。

0 投票
1 回答
326 浏览

c - CMake 没有制作 makefile

我正在尝试在 Windows 中创建动态库。我按照dart-ffi中的说明进行操作。

这是我的CMakelists.txt

您可以使用 in 克隆 repogh repo clone nivekithan/git2dart

您将CMakeFiles.txt在目录中找到libgit2

如果我是cmake .从这个目录运行的,那么我会收到这条消息

但是如果我要跑步,make我会收到这条消息

谢谢您的帮助

0 投票
0 回答
328 浏览

java - Dart FFI 与 Java 库链接

目前尚不清楚 Dart VM 如何通过 FFI 加载 C/C++ 库。

一些 C++ 库需要 Java 上下文才能在 Android 上运行。例如,Juce库通过以下方式初始化

但是,如果我想使用 FFI 从 Dart 调用 Juce,我无法从 Dart 加载它,因为我无法传递 java 上下文。如果我从 Java 加载库,那么我不能使用 Dart FFI。

有没有办法在 Java 和 Dart 中加载相同的库,在 Java 中启动它,然后将它与 Dart FFI 接口?