插件化开发的由来
android5.0之前,dalvik采用了一个short型数据来表示一个dex所含有的方法数个数,而short类型最大值为65535,因此方法数最大为65535.随着项目的不断增大,当项目中的方法数超过dalvik所能识别的最大方法数时,编译就会失败,为了解决这个问题,插件化开发就诞生了。
何为分包?
以下是没有进行分包的apk目录:
可以看到普通的apk目录中只含有一个classes.dex文件,这里面是项目的java代码部分。而之所以出现65535问题,其实就是因为classes.dex文件中的方法数过多,因此通过分包可以将一个classes.dex文件拆分为多个dex文件。
通过gradle分包之后:
通过gradle分包之后就会将classes.dex拆分为多个dex文件。
gradle分包流程
- 在build.gradle文件中加入依赖:
compile 'com.android.support:multidex:1.0.1'(