【问题标题】:Java JNI vs. Android NDKJava JNI 与 Android NDK
【发布时间】:2016-07-13 21:33:59
【问题描述】:

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

谢谢!

【问题讨论】:

  • developer.android.com/ndk/guides 比这里的 2 个答案更有帮助。概括地说,NDK 就是您想要使用的,而后者又使用 JNI。 Using Android Studio 2.2 and higher, you can use the NDK to compile C and C++ code into a native library and package it into your APK using Gradle, the IDE's integrated build system. Your Java code can then call functions in your native library through the Java Native Interface (JNI) framework.

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


【解决方案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)从native library调用函数,比如访问对象、方法等。native code也可以访问java环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      相关资源
      最近更新 更多