1

对于 java 用户来说,这个问题可能听起来很傻。对不起,我是菜鸟。

我想知道在Android系统运行时如何加载库。

假设我有一个超级简单的 android 应用程序,它只调用位于javax.net.ssl包中的函数。

包含东西的jar(dex)javax.net.ssl将被插入到apk中(将其变成静态库)?还是在运行时,Dalvik VM会链接到android机器上安装的jar(或dex)文件?或者只是Dalvik VM被编译为包含每个 javax 包含本身?

提前致谢

4

1 回答 1

2

它们实际上是在运行时通过加载存储在设备上的额外优化 dex 代码动态链接的。

实际上,对于许多组件,这在系统启动时发生一次,其中包含的进程和虚拟机成为每个应用程序继承对已在内存中的共享副本的只读访问。

本机库的工作方式大致相同,只是链接发生在虚拟机级别之下,在进程本身中。

于 2013-01-25T13:18:04.110 回答