美文网首页
MultiDex浅聊

MultiDex浅聊

作者: 初心一点 | 来源:发表于2019-02-23 13:38 被阅读1次

先简单了解下.apk和.dex

  • .apk Android安装包
  1. AndroidManifest.xml配置文件
  2. META-INF 签名信息
  3. classes.dex Java字节码文件
  4. res 资源文件
  5. resources.arsc 二进制配置文件
  • .dex Android Dalvik虚拟机执行文件

什么是MultiDex?

  1. Android中一个Dex文件最多存储65536个方法,也就是一个short类型范围。但随着应用方法数量的不断增加,当Dex文件突破65536方法数量时,打包时就会抛出异常
  2. 为解决该问题,Android5.0时Google推出了官方解决方案:MultiDex
  3. 打包时将一个应用分成多个dex,例:classes.dex、classes2.dex...,加载时把这些dex都追加到DexPathList对应的数组中,这样就解决了方法数的限制
  4. Andorid 5.0之后,ART虚拟机天然支持MultiDex
  5. Andorid 5.0之前,系统只加载一个主dex,其它的dex采用MultiDex手段来加载

如何使用?

  1. build.gradle配置
android {
    defaultConfig {
        ...
        // Enabling multidex support.
        // 如果是android 5.0以上的设备,只需要设置为multiDexEnabled true
        // minSdkVersion 为 20 或更低值,还需执行下面的2、3步
        multiDexEnabled true
    }
    ...
}

dependencies {
compile 'com.android.support:multidex:1.0.0'
}
  1. Manifest声明修改,如果有自己的Application,继承MulitDexApplication
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
  1. 重写 Application的attachBaseContext()这个方法
@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);     
}

ok了

参考链接

  1. https://www.jianshu.com/p/a5353748159f
  2. https://blog.csdn.net/xiaxl/article/details/83089944

相关文章

  • MultiDex浅聊

    先简单了解下.apk和.dex .apk Android安装包AndroidManifest.xml配置文件MET...

  • 收集_开源框架

    一、MultiDex: Multidex(一)之源码解析Multidex(二)之Dex预加载优化MultiDex(...

  • 热修复实现原理(一)

    热修复实现原理——MultiDex 一、 MultiDex 1、MultiDex 产生背景 当Android系统安...

  • No cached version of androidx.mu

    No cached version of androidx.multidex:multidex:2.0.1 ava...

  • 浅聊

    听她们说 追你 要主动一些呢 那下次试试吧 但是 我有一个别称叫 熊小怂

  • 浅聊

    1 跟甲方撕逼一整天,终于在头晕眼炸的状态中上完班,准备说回去洗个热水澡早早睡觉。 :大家都没有什么事吧。晚上去打...

  • 浅聊

    爱情,我们的一生必然的选修课? 每对热恋的情侣总是你侬我侬、相依相偎,总是在闲聊中找到乐子。时而开心欢笑,时而挑逗...

  • 浅聊

    傍晚 下班后简单吃过饭,打开视频APP看了一期《奇葩说》。之前一直觉得这类节目就是博眼球内容质量应该很差劲。但是看...

  • 浅聊

    激发学生兴趣,开拓学生思维 如今很多学生得到的知识是老师用“填鸭子”的方式一点一点“喂”给他们的。学生思维依赖性较...

  • 浅聊

    在与一个朋友的谈话中,偶然聊到了股市,继续下去,说起了一桩趣事:我两年前给他推荐的华大基因、宁德时代,现在都是翻倍...

网友评论

      本文标题:MultiDex浅聊

      本文链接:https://www.haomeiwen.com/subject/ktqpyqtx.html