抖音BoostMultiDex优化实践:我们如何使Android低版本冷启动时间减少80%(二)
2024-02-22 11:12:34
技术博客创作专家为您奉上优化技巧,帮助您优化您的应用程序的性能。
在上一篇文章中,我们介绍了抖音自研的BoostMultiDex方案,可以大幅改善Android低版本(4.4及其以下)手机更新或安装后首次冷启动时间。在本篇文章中,我们将进一步深入讨论BoostMultiDex方案,以及与业界其他优化方案的比较。
背景
Android平台从4.4版本开始,引入了MultiDex机制来支持应用使用超过64K的方法数。MultiDex的本质是在Android运行时为应用程序创建多个dex文件,并在应用程序启动时将这些dex文件合并为一个。这个合并过程可能会消耗大量时间,特别是在低端设备上。
BoostMultiDex方案
为了解决MultiDex合并耗时的问题,抖音自研了BoostMultiDex方案。BoostMultiDex方案从Android Dalvik虚拟机底层机制入手,从根本上解决了安装后首次执行MultiDex耗时的难题。
方案原理
BoostMultiDex方案的原理如下:
- 在Android系统启动时,预先将MultiDex文件合并为一个dex文件。
- 在应用程序安装时,将合并后的dex文件复制到应用程序安装目录。
- 在应用程序首次启动时,直接加载合并后的dex文件,无需再次合并。
方案效果
BoostMultiDex方案可以大幅改善Android低版本手机更新或安装后首次冷启动时间。在我们的测试中,BoostMultiDex方案使首次冷启动时间减少了80%。
与其他方案的比较
目前业界还有一些其他优化MultiDex合并耗时的方案,如Pre-Dex方案、AppCDS方案等。
- Pre-Dex方案
Pre-Dex方案的原理是将MultiDex文件预先编译为dex文件。这种方案可以减少应用程序安装时间,但无法减少首次冷启动时间。
- AppCDS方案
AppCDS方案的原理是将应用程序编译为CDS文件。CDS文件是一种包含应用程序已编译代码的二进制文件。这种方案可以减少首次冷启动时间,但会增加应用程序的安装时间。
总结
BoostMultiDex方案是抖音自研的一款优化MultiDex合并耗时的方案。该方案从Android Dalvik虚拟机底层机制入手,从根本上解决了安装后首次执行MultiDex耗时的难题。BoostMultiDex方案可以大幅改善Android低版本手机更新或安装后首次冷启动时间。在我们的测试中,BoostMultiDex方案使首次冷启动时间减少了80%。