一、MultiDex的产生背景

当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。

但是在早期的Android系统中,DexOpt有一个问题,DexOpt会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的,导致了方法id的数目不能够超过65536个。当一个项目足够大的时候,显然这个方法数的上限是不够的。尽管在新版本的Android系统中,DexOpt修复了这个问题,但是我们仍然需要对低版本的Android系统做兼容。

为了解决方法数超限的问题,需要将该dex文件拆成两个或多个,为此谷歌官方推出了multidex兼容包,配合AndroidStudio实现了一个APK包含多个dex的功能。

二、MultiDex的使用

最新文章

  1. HDU 1394 Minimum Inversion Number ( 树状数组求逆序数 )
  2. 深圳 Maker Faire 2016 & Microsoft Booth
  3. MyBatis(2):config.xml文件
  4. hive踩过的小坑
  5. 转:MPlayer源代码分析
  6. Hive remote install mode (mysql) step by step
  7. 1小时vpn coding让开发更简单 或https://www.imfreevpn.org/
  8. php验证码无法显示的原因
  9. boost::bind 和 boost::function 基本用法
  10. 【AOS应用基础平台】完好了AOS标签库,和标准标签库完美兼容了
  11. The number of positions
  12. Linq to SQL 中实现模糊查询
  13. java操作xml文件--修改节点
  14. CCF CSP 201412-1 门禁系统
  15. Mat的详解
  16. JS中every()和some()的用法
  17. Hibernate SQL查询 addScalar()或addEntity()【转】
  18. VMware进入BIOS
  19. Linux 控制CPU使用率
  20. Java正则表达式校验

热门文章

  1. skearn/pandas
  2. 回收机制GC
  3. Python 模块管理1
  4. &,~,|,^
  5. JS push对象
  6. 关于package.json
  7. JMeter 各组件介绍以及用法
  8. 深入详解美团点评CAT跨语言服务监控(七)消息分析器与报表(二)
  9. SelectDataTable
  10. 论 微服务 和 Entity Framework 对 数据 的 割裂