如何在Android中执行本机库?

如何在Android中执行本机库?,android,android-ndk,dalvik,Android,Android Ndk,Dalvik,我在想,当android应用程序加载本机库时,库是如何执行的? apk中的dex文件由dalvik VM执行,但当操作码中的逻辑调用库中的方法(不是dex格式)时,VM是否挂起并等待进程(此应用程序和VM正在运行)执行库? 感谢您通过JNI调用本机库。您可以从这里了解更多关于JNI工作原理的信息: 下面是一个很好的示例,说明如何构建本机代码并使用它 谢谢,但我的意思是如何执行库?(在另一个线程或其他什么地方?)本机库被编译成二进制格式(应该直接在cpu上执行),但不是dex格式,因此dalvik

我在想,当android应用程序加载本机库时,库是如何执行的? apk中的dex文件由dalvik VM执行,但当操作码中的逻辑调用库中的方法(不是dex格式)时,VM是否挂起并等待进程(此应用程序和VM正在运行)执行库?
感谢您通过JNI调用本机库。您可以从这里了解更多关于JNI工作原理的信息:


下面是一个很好的示例,说明如何构建本机代码并使用它

谢谢,但我的意思是如何执行库?(在另一个线程或其他什么地方?)本机库被编译成二进制格式(应该直接在cpu上执行),但不是dex格式,因此dalvik vm无法解释它。我认为这应该与JVM中的情况相同?我不能确定,但从文档中可以看出,Delvim使用的是相同的机制。本机代码在同一地址空间内的本机线程中执行,但由JVM调用,它将处理所有上下文准备、数据格式化等工作。编写多线程JNI代码有一定的限制(如无法传递本地引用等),除非您有具体问题,否则我无法回忆起所有内容。:)谢谢,这几乎就是我想知道的。