android - NDK原生代码具体执行在哪里

标签 android android-ndk

我对 Android 应用程序中原生代码的生命周期有些困惑。我看到引用资料说 native 代码是在 Dalvik VM 中执行的,但这是真的吗?我的印象是虚拟机只运行 Dalvik 字节码。另一方面, native 代码使用从 VM 内部的 Java 调用的 JNI。最后,使用 NativeActivity 有什么不同吗?

我认为我对 NDK 的理解相当好,直到我坐下来尝试向自己解释它。我什至不确定我是否以明智的方式提出问题。

最佳答案

I have seen references that say that the native code is executed inside the Dalvik VM, but is that true?

它在包含 Dalvik VM 的进程中执行。就个人而言,我不会将其描述为在 VM 内部执行——正如您所说,Dalvik 字节码在 VM 内部执行。恕我直言,“在 Dalvik VM 的控制下”会更好。当然,我想这归结为您对“在”的定义。

Lastly, does the use of NativeActivity make any difference?

不是真的,就NativeActivity is implemented in Java而言.虽然可能没有任何 Java,但 Java 仍然轻微地参与了运行您的 native 代码的行为。

关于android - NDK原生代码具体执行在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992836/

相关文章:

android - 在 Android 平台上使用 dlclose(...) 时出现段错误

Android:如何在 YouTubeThumbnailView 上添加播放按钮

Android Eclipse 和为项目配置 NDK 工具链

android - OpenCV native 示例未构建

java - 连接android到wamp服务器,出现空指针异常

android - Android Studio中的NDK生成错误以非零退出值2完成

android - 可用于 native 模块的库

java - 如何处理使用泛型实现接口(interface)的这种情况?

android - 无法实例化 Sugar ORM 数据库

android - 异常 java.lang.SecurityException : reading . .MediaDocumentsProvider ... 需要 android.permission.MANAGE_DOCUMENTS,或 grantUriPermission()