Multidex专题
—— MultiDex专题
欢马劈雪 最近更新时间:2020-08-04 05:37:59
首先,了解自己当前的状况
- dex方法数统计工具
- Dexcount Gradle Plugin,gradle插件,每次打包过程中把每个包的方法数写到build文件夹下的一个文件中
- dex-method-counts,命令行工具,统计dex文件内的方法数
- ClassyShark,GUI工具,查看apk内的dex分包,每个dex文件的方法数统计,每个dex文件里面有哪些class
- ProGuard,移除未引用的类,避免触及65535方法上限
- 这些工具都可以用来了解当前工程的方法数(使用ProGuard前后),知悉各个包、各个库的方法数量,对于方法数很多、使用量少的库,应该移除依赖,或者通过适当配置ProGuard来移除,应该尽量避免MultiDex
尽量减少方法数,避免MultiDex,无法避免时优化MultiDex的性能
- multidex时,放到主dex文件的类是由proguard来检测的,有时它并不是完整的,需要手动配置,还可以通过检测冷启动期间被加载了哪些类,然后通过配置把它们加入主dex中,从而达到multidex时冷启动加速的效果。详情
- 全新的Android编译系统:Jack & Jill(尚不成熟)
副dex异步加载技术
- 使用pre-dex jar来减小主dex文件的大小,但需要保证在使用某个库的类之前,pre-dex jar已经被加载,详情
- 美团、Facebook、微信团队对MultiDex加载的优化简述