将C++项目导出到 Android - JNI/JavaCPP/Visualgdb

Exporting C++ project to Android - JNI/JavaCPP/Visualgdb

本文关键字:JNI JavaCPP Visualgdb Android C++ 项目      更新时间:2023-10-16

我在尝试将我的opencv项目导出到Android时遇到了一个关键问题。由于我的所有代码都是在Visual Studio 2013下的opencv(C++版本),所以我开始研究JNI。我最终意识到,当我们导出 C 内容时,JNI 效果很好,因为名称重整被关闭了。这会影响我的C++代码吗?我认为它应该作为名称重整必须用于C++类函数。

然后我发现了JavaCPP。这似乎更有希望,但它的指针逻辑的额外开销似乎很奇怪,让我想到了创建 .so 文件的额外构建步骤。

最后,阅读有关Visualgdb的信息。虽然似乎在试用中,但以我喜欢Visual Studio,看起来很合理。

有人可以指导我必须遵循哪种方式在 android 中翻译/绑定我的代码,以便我可以导出我的 c++ 类吗?纯 JNI 在C++代码方面是否有真正的问题,而在 C 方面没有问题?或者我应该选择JavaCPP或visualgdb?

您的宝贵意见将不胜感激。

谢谢

AFAIK 你可以在你的 c++ 代码上使用 JNI,我正在使用它。但是,只有当你想用 c++ 编写所有代码并希望 java 在 java 端使用确切的 c++ 代码时,才应该使用 JNI。为此,您应该导出公共 API 中的所有函数。而且我必须说,传递自定义对象(如 MatRect 等)并不是一个很容易的问题,调试也不是直截了当的。我建议你使用OpenCV Java并将你的代码移植到Java。

祝你好运!