我们的应用程序在apk中有三个dexes,它是由gradle和multidex功能构建的。
安装应用程序后,
主要的dex和第二个dex是否由同一个类加载器加载?
如何检查第二个(classes2.dex)和第三个是否已加载完成?我可以动态检查代码吗?
或者你们可以介绍一下有关Android中类(或dex)加载过程的任何相关文档吗?我对此并不熟悉。
谢谢。
答案 0 :(得分:3)
我没有深入研究ART代码,但您可以阅读Multidex支持库为Dalvik here所做的事情:
ClassLoader
加载。加载应用程序时,MultiDex
检测:
ClassLoader
),ClassLoader
,并将这些新的.zip文件添加到ClassLoader
反复知道的列表中。不仅由相同的ClassLoader加载单独的dexes,它们由没有MultiDex时使用的相同ClassLoader加载。
应用程序加载时,应自动设置额外的dexes。检查此代码内容并不容易,但您可以通过查看设备的日志来进行本地验证。
有一些Android docs about the architecture of ART and Dalvik。但是,没有什么比阅读来源更好了:)