Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNI与Android NDK_Java_Android_Android Ndk_Java Native Interface_Native - Fatal编程技术网

Java JNI与Android NDK

Java JNI与Android NDK,java,android,android-ndk,java-native-interface,native,Java,Android,Android Ndk,Java Native Interface,Native,有人能解释一下javajni和androidndk的区别,它们是如何相同的,以及它们是如何结合在一起的吗?我还没有找到任何东西能很好地解释两者之间的区别,我有点困惑 谢谢 JNI正是Java处理对本机/C++代码的调用,并从那里调用回Java的方式。它对Android没有什么可说的——它是Java语言的一个特性 AndroidNDK是一种使用JNI调用的代码编写Android应用程序的方法。它是针对Android的,并在该级别提供对Android API的本机代码访问。Android NDK(本

有人能解释一下javajni和androidndk的区别,它们是如何相同的,以及它们是如何结合在一起的吗?我还没有找到任何东西能很好地解释两者之间的区别,我有点困惑


谢谢

JNI正是Java处理对本机/C++代码的调用,并从那里调用回Java的方式。它对Android没有什么可说的——它是Java语言的一个特性

AndroidNDK是一种使用JNI调用的代码编写Android应用程序的方法。它是针对Android的,并在该级别提供对Android API的本机代码访问。

Android NDK(本机开发工具包)基本上是一个重用用C/C++编写的代码(本机代码)的工具链。它将本机代码编译到本机库中。NDK类似于Android SDK,主要区别在于仅对java代码使用SDK。NDK用于为多种平台(如iOS、Windows)开发的应用程序。Whatsapp、Instagram等应用程序都是使用NDK开发的

Java代码使用JNI(Java本机接口)从本机库调用函数,如访问对象、方法等。本机代码也可以访问Java环境。

比这里的两个答案更有用。在较高的层次上,NDK是您想要使用的,而NDK又使用JNI<代码>使用Android Studio 2.2和更高,可以使用NDK将C和C++代码编译成本地库,并使用IDE的集成构建系统GADLE将其打包到APK中。然后,Java代码可以通过Java本机接口(JNI)框架调用本机库中的函数。