安卓应用中的C/C++代码是如何执行的?

3
我正在开发一个使用OpenCV进行一些复杂计算机视觉操作的Android应用程序。目前我想知道,如果我使用C/C++而不是Java进行视觉处理,能否获得更好的性能。应用程序的其余部分是使用Android Studio编写的Java代码。
我很困惑C/C++代码如何在Android设备上编译和运行。由于Java应用程序在Android平台上运行在JVM上,我并不清楚C/C++代码是如何为JVM编译并且运行的。
我考虑,如果C/C++代码被编译成可以在JVM上运行的代码,那么使用它的意义是什么呢?因为它仍然在虚拟机中运行,而不是直接针对设备的CPU。

阅读关于Android NDK的内容-它允许在Android中使用C/C++代码。 - Michel_T.
C++代码可以本地运行。 - Richard Critten
3
C++代码并非为虚拟机编译,而是为目标设备的CPU架构(通常为ARMv7-a或ARMv8-a)编译。然后,您的应用程序的Java部分和本地部分可以通过Java本机接口(JNI)进行交互。 - Michael
1个回答

6

NDK用于使用C/C++编写代码,它可以提高应用程序的性能。对于许多处理器密集型应用程序来说,使用NDK通常是必要的。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接