【问题标题】:How is Multidex support implemented internally?Multidex 支持是如何在内部实现的?
【发布时间】:2019-07-04 08:03:17
【问题描述】:

据我了解,经典 dex 文件中的 64K 限制出现是因为调用的字节码 instruction 允许 16 位值用于索引 dex 中的函数。 但是随着 Multidex 支持的引入,我不确定如何在 字节码级别上跨不同 dex 文件处理函数索引。

到目前为止,我尝试查看 android 开发者页面,除了在启动期间发生的“复杂过程”之外,没有提及太多技术细节

【问题讨论】:

    标签: android limit bytecode android-multidex


    【解决方案1】:

    要支持 Multidex,您的应用程序的主类必须扩展该类

    android.support.multidex.MultiDexApplication

    另外,您需要在应用模块的 build.gradle 中添加以下依赖项:

    dependencies {
      implementation 'com.android.support:multidex:1.0.3'
    }
    

    并将 multiDexEnabled 设置为 true

    android {
        defaultConfig {
            ...
            multiDexEnabled true
        }
        ...
    }
    

    【讨论】:

    • 其实我想知道hot multidex解决了引用超过16位限制的函数的问题。我真的很想知道当你引用另一个 dex 文件中的函数时字节码的样子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多