0

我想知道,假设在 android 中是否有一个应用程序中编写了一些 C/C++ 代码。执行此代码时,它将需要本机 c 库。那么 DVM 是如何与这些库通信的呢?它是否使用 Binder 从库中获取资源?或者这部分代码不在JVM中执行。如果不是,这在哪里执行以及如何执行?JVM和本机库之间有什么联系吗?

4

1 回答 1

1

你说的交流是什么意思?.so 被加载到 vm 中,vm 将解析符号并绑定到 java 本地方法(如果有)。基本上 vm 不会与 .so 对话。字节码世界就像 vm 进程内部的结构化内存,native 方法可以通过作为 vm 一部分的 jni 环境例程读取或写入。

于 2011-12-15T06:12:57.390 回答