Java JNI与Android NDK的区别

17

有人能解释一下Java JNI和Android NDK之间的区别,它们如何相同以及如何结合使用吗?我没有找到任何能够清晰解释两者差异的资料,感到有些困惑。

谢谢!


https://developer.android.com/ndk/guides/ 比这里的两个答案更有帮助。从高层次来看,NDK 是您想要使用的工具,它又会使用 JNI。 使用 Android Studio 2.2 及更高版本,您可以使用 NDK 将 C 和 C++ 代码编译成本地库并使用 Gradle(IDE 集成的构建系统)将其打包到 APK 中。然后,您的 Java 代码可以通过 Java Native Interface (JNI) 框架调用本地库中的函数。 - Ben Butterworth
2个回答

26

JNI是Java处理调用本地/C ++代码并从那里回调Java的方式,它与Android无关-它是Java语言特性。

Android NDK是一种使用JNI调用的代码编写Android应用程序的方法。它专门针对Android,并允许本地代码在该级别上访问Android API。


4
Android NDK(Native Development Kit)基本上是一个工具链,用于重用用C / C ++(本机代码)编写的代码。它将本机代码编译为本机库。NDK类似于Android SDK,主要区别在于只使用SDK进行Java代码。NDK用于开发针对多个平台(如iOS,Windows)的应用程序。像WhatsApp,Instagram等应用程序都是使用NDK开发的。
Java代码使用JNI(Java Native Interface)调用本地库中的函数,例如访问对象,方法等。同时,本机代码可以访问Java环境。

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