【问题标题】:How is C/C++ code in an Android App executed?Android 应用程序中的 C/C++ 代码如何执行?
【发布时间】:2017-04-07 06:36:42
【问题描述】:

我正在开发一个 Android 应用程序,它使用 OpenCV 来执行一些密集的计算机视觉操作。在这一点上,我想知道如果我用 C/C++ 而不是 Java 进行视觉处理,是否可以获得更好的性能。该应用程序的其余部分是使用 Android Studio 用 Ja​​va 编写的。

我对如何在 Android 设备上编译和运行 C/C++ 代码感到困惑。由于 Java 应用程序在 Android 平台上的 JVM 上运行,因此我不太了解如何为 JVM 编译 C/C++ 代码以及该代码如何运行。

我在想如果 C/C++ 代码被编译成可以在 JVM 中运行,那么使用它有什么意义,因为它仍在 VM 中运行,而不是直接针对设备 CPU?

【问题讨论】:

  • 了解 Android NDK - 它允许在 android 中使用 C/C++ 代码
  • C++ 代码原生运行。
  • 没有为 VM 编译 C++ 代码。它针对目标设备的 CPU 架构(通常为 ARMv7-a 或 ARMv8-a)进行编译。然后,您的应用程序的 Java 部分和本机部分可以通过 Java 本机接口 (JNI) 进行交互。

标签: java android c++ c opencv


【解决方案1】:

NDK 用于 C/C++ 中的编码。它提高了应用程序的性能。 NDK 通常适用于许多受处理器限制的应用程序

本机代码(C/C++)被编译为二进制代码并直接在操作系统上运行。 Java 代码被翻译成 Java 字节码在 JVM 上运行。

您可以使用NDK for programming C/C++ 应用程序。您也可以使用QT for andriod 开发C/C++ 应用程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 2019-07-06
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    相关资源
    最近更新 更多