Java JNI与Android NDK

时间:2016-03-26 04:28:00

标签: java android android-ndk java-native-interface native

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

谢谢!

2 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:0)

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

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