Java JNI vs. Android NDK

有人可以解释一下Java JNI和Android NDK有何不同,它们如何相同以及它们如何组合在一起?我没有找到任何可以很好地解释两者之间差异的东西,我有点困惑。

谢谢!


答案 1

JNI 只是 Java 处理调用本机/C++代码并从那里回调 Java 的方式。它对Android没什么可说的 - 它是一个Java语言功能。

Android NDK是一种使用JNI调用的代码编写Android应用程序的方法。它特定于Android,并允许本机代码访问该级别的Android API。


答案 2

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

Java代码使用JNI(Java Native Interface)从原生库中调用函数,例如访问对象,方法等。此外,本机代码可以访问 Java 环境。


推荐