2016-11-23 36 views
1

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

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

我在想,如果C/C++代码被编译为可以在JVM中运行,那么使用它的目的是什么?因为它仍然在虚拟机中运行,而不是直接定位到设备CPU?

+0

阅读关于Android NDK - 它允许在android中使用C/C++代码 –

+0

C++代码本身运行。 –

+2

未针对虚拟机编译C++代码。它针对目标设备的CPU架构(通常是ARMv7-a或ARMv8-a)进行编译。 Java部分和应用程序的本地部分可以通过Java本地接口(JNI)进行交互。 – Michael

回答

4

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

本地代码(C/C++)被编译为二进制代码并直接在OS上运行。 Java代码被转换为Java字节代码以在JVM上运行。

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

相关问题