插件化开发时,想要使app启动很快,需要将主dex中只是包含首页以及基础模块的功能,其他的功能放到从dex文件中,这样就可以加快app的启动速度。那如何将核心首页以及基础模块的class文件打包到主dex文件中呢?下面来实现这个过程。
1.首先要是项目支持multidex,要是项目支持multidex,需要完成下面两个步骤
a.需要在module级别的build.gradle文件中配置
android {
defaultConfig {
// 设置支持multidex
multiDexEnabled true
}
}
dependencies {
//引入对multidex支持的库
compile 'com.android.support:multidex:1.0.1'
}
b.完成这些配置后,需要在自定义的application中的attachBaseContext方法中添加如下代码:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
完成了这两个步骤后,项目才支持多dex。
2,要明确主dex文件中要包含哪些class文件,明确后,在module的build.gradle所在的目录下,新建一个maindexlist.txt文件,并将这些class文件所在的路径都写入到这个文件中。
3.在build.gradle文件中,在加入如下配置信息
android {
defaultConfig {
// 设置支持multidex
multiDexEnabled true
}
//新增的配置信息
dexOptions{
preDexLibraries = false
additionalParameters = [ //配置multidex参数
'--multi-dex',//多dex分包
'--set-max-idx-number=30000',//每个包内方法数上限
'--main-dex-list='+projectDir+'/maindexlist.txt', //打包到主cla