对于java用户来说,这个问题可能听起来很愚蠢。对不起,我是个菜鸟。
我想知道如何在Android
系统的运行时加载库。
假设我有一个超级简单的Android应用程序,它只调用位于javax.net.ssl
包中的函数。
包含javax.net.ssl
内容的jar(dex)将插入到apk中(将其转换为静态库)?
或者在运行时,Dalvik VM
将链接到安装在android机器上的jar(或dex)文件?
或者只是编译Dalvik VM
以包含每个javax包含它自己?
提前致谢
答案 0 :(得分:2)
它们实际上是通过加载存储在设备上的其他优化dex代码在运行时动态链接的。
实际上,对于许多组件,这在系统启动时发生一次,其中包含的进程和虚拟机成为每个应用程序继承对已经在内存中的共享副本的只读访问权。
本地库的工作方式与在流程本身中仅在虚拟机级别下发生链接的方式相同。