【问题标题】:Is it justified to use C/C++ for iOS/Android cross platform code in this case?在这种情况下,为 iOS/Android 跨平台代码使用 C/C++ 是否合理?
【发布时间】:2011-06-17 15:29:36
【问题描述】:

我打算写一个有很多图像识别处理的移动应用程序(iOS 和 Android)。

用 C 或 C++ 编写图像识别代码以便在两个平台上重用它是一个好的解决方案吗?

是否会有很多特定于平台的 C/C++ 代码导致编写和维护不合理?

注意:这个应用程序是基于图像识别的,代码的最大部分是图像识别。

【问题讨论】:

    标签: android c ios cross-platform android-ndk


    【解决方案1】:

    我会说是的。这是我认为 Android-NDK 最适合使用的类型,而且由于直接 C 可以从 OBJ-C 很好地编译,因此两个平台之间可能会重用大量代码。

    【讨论】:

    • 我同意。这正是 JNI 设计的目的,在 iOS 下使用 C/C++ 确实不是问题,因为 ObjC 对象完全理解 C API - 如果您将 .mm 文件类型用于 ObjC 源代码,C++ 也同样如此。
    【解决方案2】:

    尝试查看OpenCV 库。它是一个“实时计算机视觉编程函数库”,包含大量用于图像处理和识别的优化代码。

    OpenCV 库很容易在源代码中支持 Android-NDK,here are the instructions 用于编译适用于 Android 的 OpenCV 库并在您的应用程序中使用它。

    还有一个OpenCV - iOS 项目,它提供XCode 项目文件来为iPhone 和iPad 构建OpenCV。

    【讨论】:

    • 谢谢。我已经检查过了,我需要的算法没有在 OpenCV 中实现。但它可以作为一个很好的参考:)
    • 你到底要“识别”什么?
    【解决方案3】:

    我无法透露您的图像识别库的具体细节,但我可以告诉您,几乎所有适用于 Android 的实际 API 都使用 Java,所有 Cocoa touch 都使用 ObjC。这可能不仅仅是您的库的问题,但是一旦您需要挂钩任何现有的 API,您就会想要编写 Java 或 ObjC。

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 1970-01-01
      • 2018-04-28
      • 2021-12-31
      • 2012-06-29
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多