重磅!字节跳动又一开源力作

「BoostMultiDex」,一个用于 Android 低版本设备(4.X 及以下,SDK < 21)快速加载多 DEX 的解决方案。

Android 低版本(4.X 及以下,SDK < 21)的设备,采用的 Java 运行环境是 Dalvik 虚拟机。它相比于高版本,最大的问题就是在安装或者升级更新之后,首次冷启动的耗时漫长。这常常需要花费几十秒甚至几分钟,用户不得不面对一片黑屏,熬过这段时间才能正常使用 APP,这是非常影响用户的使用体验的。

可能你觉得 Android 4.X 及以下的手机很少了,但对于抖音及 Tiktok 这样有着亿级规模的用户的 APP,即使占比 10%,数目也有上千万。因此如果想要打通下沉市场,这部分用户的使用和升级体验是绝对无法忽视的。

BoostMultiDex 方案的技术实现要点如下:

利用系统隐藏函数,直接加载原始 DEX 字节码,避免 ODEX 耗时
多级加载,在 DEX 字节码、DEX 文件、ODEX 文件中选取最合适的产物启动 APP
单独进程做 OPT,并实现合理的中断及恢复机制
相比于 Android 官方原始 MultiDex 方案,它能够减少 80% 以上的黑屏等待时间,挽救低版本 Android 用户的升级安装体验。并且,不同于目前业界所有优化方案,BoostMultiDex 方案是从 Android Dalvik 虚拟机底层机制入手,从根本上解决了安装 APK 后首次执行 MultiDex 耗时过长问题。

性能对比如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/penggerhe/article/details/109290304