gpt4 book ai didi

android - 如何在我的应用程序安装后检查第二个 dex 是否加载完成?

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:08 24 4
gpt4 key购买 nike

我们的应用程序在 apk 中有三个 dexes,它们是由具有 multidex 特性的 gradle 构建的。

应用安装完成后,

  1. 主 dex 和次 dex 是否由同一个类加载器加载?

  2. 如何检查第二个(classes2.dex)和第三个是否加载完成?我可以在代码中动态检查它吗?

  3. 或者大佬们能介绍一下Android中类(或dex)加载过程的相关文档吗?我不熟悉这个。

谢谢。

最佳答案

我没有深入研究 ART 代码,但您可以阅读 Multidex 支持库对 Dalvik 的作用 here :

  1. 是的。所有索引中的类都由相同的 ClassLoader 加载。当您的应用程序加载时,MultiDex 检测:
    • 从 .apk 中提取额外的 dex 文件并将它们放入数据目录中它们自己的 .zip 文件中(这样它们就无法与 APK 和 ClassLoader 区分开来),
    • 从您的应用程序的上下文中获取 ClassLoader,并将这些新的 .zip 文件添加到 ClassLoader 反射知道的列表中。

不仅单独的 dexes 由同一个 ClassLoader 加载,它们还由同一个 ClassLoader 加载,在没有 MultiDex 的情况下使用。

  1. 额外的 dexes 应该在您的应用程序加载时自动设置。在代码中检查此内容并不容易,但您可以通过检查设备的日志在本地进行验证。

  2. 有一些 Android docs about the architecture of ART and Dalvik .但是,没有什么比阅读源代码更好的了:)

关于android - 如何在我的应用程序安装后检查第二个 dex 是否加载完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32755644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com