问题标签 [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.
android - Flutter C++ 内存分配导致光栅线程卡顿 - Android NDK Dart FFI
我有一个颤振应用程序,用于Dart ffi
连接到我的自定义 C++ 音频后端。在那里,我为我的音频缓冲区分配了大约 10MB 的总内存。每个缓冲区有 10MB / 84 的内存。我使用 84 音频播放器。这是 ffi 流程:
C++ 桥:
在我的声音引擎中,我启动了一个 C++ 线程:
所以这就是问题所在,我不知道为什么,但是当我new
甚至在 C++ 线程内使用关键字分配内存时,会出现光栅线程卡顿,我可以看到我的抖动 UI 卡顿了很多帧。这也存在于性能叠加中,因为它会在 3 到 5 帧内全部变为红色,每帧大约需要 30 40 毫秒。在配置文件模式下测试。
这是我得出这个结论的方法:如果我立即从我的内存分配代码中返回startDecoderWorker
,new
那么当我这样做时,就会出现 0 jank。一切都顺利 60fps,性能叠加没有显示红条。
以下是个人资料模式的一些屏幕截图:
android - Dart FFI - 从 C++ 调用 Dart 函数
我正在制作一个使用 dart ffi 与 C++ 通信的应用程序。我的主要问题是我想从我的 C++ 端获取分析报告。为此,我正在使用FlutterFire - firebase analytics
. 问题是我需要从 C++ 调用 Dart,以便我可以将日志请求发送到分析。
我实现了这个例子。问题是,由于 dart 是单线程语言,如果我从另一个 C++ 线程调用 Dart 回调,应用程序会崩溃,因为它打破了 dart 单线程假设。
将我的 C++ 端的内容记录到的最佳方法是FlutterFire - firebase analytics
什么?有人能引导我走向正确的方向吗?
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(),我得到:
我知道颤振测试无法访问“主要”资产,但我该如何强制通过它,以便我可以正确测试我的代码?
这个问题提供了两种解决方案:
- 使用flutter_driver
- 根据此示例代码,使用带有开启功能的 cmake 构建库。
但我并不完全了解如何让这些对我有用。颤振驱动程序如何在这里帮助我?应该将#2 代码添加到测试中还是原始库中并在测试中调用?如果我已经在 main/jniLibs 文件夹中预建了共享对象,我真的需要在测试时重建项目吗?这似乎浪费了很多时间来测试应用程序。
flutter - 如何在 Flutter 中使用 dart:ffi?
我被困在如何在 Flutter 中实现dart::ffi ,特别是hello_world 示例。
从基本flutter create
项目(和已经编译的hello_world.dll
)开始,只是尝试:
导致:
我是否还需要一个.dylib
版本,例如示例中的内容?
dart - Flutter-Desktop sqflite ffi 在发布模式下抛出错误
我在桌面窗口上为我的数据库使用sqflite ffi 。我设置了示例中的所有内容。该应用程序正在调试构建,但如果我在发布模式下运行该应用程序,我会在sqfliteFfiInit()
. 我该如何解决?
c - 如何在颤动中运行 ac 静态链接库(.a 存档)?
我正在尝试在我的颤振应用程序中包含一个 C 库。我有一些 .h 文件和一个 .a 文件。如果我理解正确, .h 文件是标题,而 .a 文件是静态链接库。
我的目标是将该库中的一些函数运行到我的颤振代码中,但我发现颤振文档非常不清楚如何做到这一点。我对C一无所知,所以我真的很难理解代码,而且我真的不知道从哪里开始。
我的问题是:是否可以在颤振应用程序中从 .a 文件运行代码,我该怎么做?还是我需要 .so 文件或源代码?
flutter - 使用 Flutter 2.0 / Dart 12 在 flutter_openvpn 中构建 win32 插件错误
为 iOS 构建应用程序时出现此错误:Command PhaseScriptExecution failed with a nonzero exit code
.
ios - dart:ffi 用于 NSURLSession
NSURLSession
是否可以通过 dart 中的 FFI访问和相关类型?我想在 iOS 上将此绑定与 Flutter 一起使用。
如果是,可以这样做dart:ffigen
吗?我将如何配置它?ffi 有很多示例,但我没有找到访问系统框架。
c - CMake 没有制作 makefile
我正在尝试在 Windows 中创建动态库。我按照dart-ffi中的说明进行操作。
这是我的CMakelists.txt
您可以使用 in 克隆 repogh repo clone nivekithan/git2dart
您将CMakeFiles.txt
在目录中找到libgit2
。
如果我是cmake .
从这个目录运行的,那么我会收到这条消息
但是如果我要跑步,make
我会收到这条消息
谢谢您的帮助
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 接口?