android - 在 dart/flutter 项目中包含 C 文件

在使用 Dart 编写的跨平台 (Android/iOS) 项目中和 Flutter ,我需要包含一个 C 文件并从该文件调用 C 函数。例如,许多最新的加密代码在 Dart 中还不存在。此外,我需要在有返回值的dart函数中调用C代码,所以我不能使用异步方法,而是需要同步调用这些函数。

一个 thread about including C/C++ code in Flutter似乎建议使用 platform channels .有了这些,就可以使用各自平台的 native 代码。对于 iOS,Objective C 是 C 的超集,而对于 Android,需要一个额外的层,即 NDK使用 C 代码。这不仅意味着需要编写两次代码(我可以忍受),而且 platform channels tutorial明确表示平台调用是异步的(这对我来说很糟糕)。

我找到了另一个 thread about native extensions in Dart从 2012 年开始,它展示了如何在 dart 中包含 C 代码,但这似乎只针对命令行应用程序。

如果没有办法从 Flutter 同步调用 C 函数,那就太奇怪了。如果您知道如何实现这一点,您可以考虑一个简单的 C 函数作为概念证明,如下所示:

int inc(int num) {
    return num + 1; 
}

提前致谢!

最佳答案

目前,您无法同步执行此操作。对不起,伤了你的心。

https://stackoverflow.com/questions/51819875/

相关文章:

flutter - 如何在 flutter 中改变英雄动画的速度

android - 如何在 Flutter 中使用设备的默认字体?

android - 路由后,TextField 单击重建/重新加载小部件

android - Flutter 不选择基于 fontWeight 的自定义字体

asynchronous - 在特定时间等待 future

dart - Flutter 能否免去使用 mac 来创建 IOS 应用程序?

listview - flutter listView.Builder 隐藏最后一个列表项的分隔符

flutter - 如何使 Flutter RaisedButton 处于选中状态

Flutter - 屏幕的多个文件?

ios - 如何在 Flutter 中实现可滚动的 Canvas ?