我的团队构建了一个 C++ 库,它需要在 Android 上由 Java 调用,但也应该可以由其他语言调用:Swift、Flutter、其他 C++ 代码库等...
挑战在于我们不希望每次更新 API 时都必须手动更新各种 FFI(JNI、Obj-C++、Dart FFI 等)。 执行此操作的最佳方法是什么?
最佳答案
一种方法是在库中有一个可调用函数,它接受一个字符串或一个字节数组。该字符串/数组可以是 JSON 或序列化的 Google Protocol Buffer 。相同的方法可用于从您的函数返回值。
通过这种方式,您只需实现一次 FFI,但会在运行时支付序列化/反序列化费用。
关于c++ - 如何拥有可被多种语言调用的 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823142/