资料介绍
软件简介
BoostMultiDex 是一个用于 Android 低版本设备(4.X及以下,SDK < 21)快速加载多 DEX 的解决方案,由字节跳动的抖音/Tiktok Android 技术团队出品。
相比于 Android 官方原始 MultiDex 方案,它能够减少 80% 以上的黑屏等待时间,挽救低版本 Android 用户的升级安装体验。并且,不同于目前业界所有优化方案,BoostMultiDex 方案是从 Android Dalvik 虚拟机底层机制入手,从根本上解决了安装 APK 后首次执行 MultiDex 耗时过长问题。
背景
Android低版本(4.X及以下,SDK < 21)的设备,采用的 Java 运行环境是 Dalvik 虚拟机。它相比于高版本,最大的问题就是在安装或者升级更新之后,首次冷启动的耗时漫长。这常常需要花费几十秒甚至几分钟,用户不得不面对一片黑屏,熬过这段时间才能正常使用 APP。
这是非常影响用户的使用体验的。尤其在海外,像东南亚以及拉美等地区,还存有着很大量的低端机。4.X 以下低版本用户虽然比较少,但对于抖音及 Tiktok 这样有着亿级规模的用户的APP,即使占比10%,数目也有上千万。因此如果想要打通下沉市场,这部分用户的使用和升级体验是绝对无法忽视的。
这个问题的根本原因就在于,安装或者升级后首次 MultiDex 花费的时间过于漫长。为了解决这个问题,字节跳动挖掘了 Dalvik 虚拟机的底层系统机制,对 DEX 相关处理逻辑进行了重新设计,最终推出了BoostMultiDex方案,挽救低版本Android用户的升级安装体验。
技术要点
BoostMultiDex方案的技术实现要点如下:
- 利用系统隐藏函数,直接加载原始DEX字节码,避免ODEX耗时
- 多级加载,在DEX字节码、DEX文件、ODEX文件中选取最合适的产物启动APP
- 单独进程做OPT,并实现合理的中断及恢复机制
更重要的是,BoostMultiDex 已经在抖音/TikTok 亿级全球用户上验证通过,可以说涵盖了各个国家、各种复杂情况的Android机型,目前业界其他大型 AP P都很难涉及到如此广泛的规模。由此,字节跳动也解决了各种奇怪的兼容性问题,最大程度上确保了技术方案的稳定性。
快速接入
build.gradle的dependencies中添加依赖:
dependencies { ... ... // For specific version number, please refer to app demo implementation 'com.bytedance.boost_multidex:boost_multidex:${ARTIFACT_VERSION}' }
与官方MultiDex类似,在Application.attachBaseContext的最前面进行初始化即可:
public class YourApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); BoostMultiDex.install(base); ... ... }
编译构建
如果想自行编译打包,需要使用R16B版本的NDK以支持armeabi架构,如果不需要,可以直接在boost_multidex/build.gradle 中去掉此依赖。
执行以下命令即可构建本地aar包:
./gradlew :boost_multidex:assembleRelease
产物为boost_multidex/build/outputs/aar/boost_multidex-release.aar
性能对比
Android版本 | 厂商 | 机型 | 原始MultiDex耗时(s) | BoostMultiDex耗时(s) |
---|---|---|---|---|
4.4.2 | LG | LGMS323 | 33.545 | 5.014 |
4.4.4 | MOTO | G | 45.691 | 6.719 |
4.3 | Samsung | GT-N7100 | 24.186 | 3.660 |
4.3.0 | Samsung | SGH-T999 | 30.331 | 3.791 |
4.2.2 | HUAWEI | Hol-T00 | *** | 3.724 |
4.2.1 | HUAWEI | G610-U00 | 36.465 | 4.981 |
4.1.2 | Samsung | I9100 | 30.962 | 5.345 |
以上是在抖音上测得的实际数据,APK ***有 6 个 Secondary DEX,显而易见,BoostMultiDex 方案相比官方MultiDex 方案,其耗时有着本质上的优化,基本都只到原先的11%~17%之间。 也就是说BoostMultiDex减少了原先过程80%以上的耗时。 另外其中有一个机型,在官方 MultiDex 是直接***无法启动的。使用 BoostMultiDex 也将使得这些机型可以焕发新生。
- 8寸安卓动态人脸识别门禁终端
- Rslogix5000从高版到低版本转换教程 0次下载
- 手机智能相册软件DwgCloudGallery安卓版 0次下载
- 安卓系统蓝牙调试助手工具源代码下载 8次下载
- 安卓系统使用教程之安卓系统的50个使用技巧资料免费下载 23次下载
- Linux桌面系统初级教程之如何进行软件安装和卸载 2次下载
- 如何使用proteus 8.0打开低版本的电路图 0次下载
- ADB工具(安卓 & Linux调试)下载 21次下载
- 安卓声纹解锁系统 2次下载
- Acme CAD Converter官网下载入口(CAD版本转换器) 0次下载
- 安卓开发学习教程 13次下载
- 安卓系统DIY教程 18次下载
- PADS_设置 0次下载
- DWG格式文件转换工具DWGTrueConvert2007
- AD5320中文资料pdf
- CAD绘图技巧全攻略 734次阅读
- 鸿蒙系统和安卓的区别哪个好用 1538次阅读
- harmonyos和安卓的区别 2822次阅读
- 安卓与迪文屏的无线交互应用 495次阅读
- 编译官方fridaserver或者strongFrida并替换系统内置版本 2717次阅读
- 安卓应用层抓包通杀脚本的用法 1412次阅读
- 一文了解MyBatis的查询原理 1317次阅读
- FP32推理TensorRT演示 1616次阅读
- macOS如何快速连接安卓机?不如试试这个免费的开源工具 3742次阅读
- 米尔科技Xilinx下载线介绍 2124次阅读
- 如何解决AutoCAD图形导入到Protel99SE时丢失曲线的问题 5519次阅读
- 做到这两点后鸿蒙或将超越安卓 2585次阅读
- 安卓获权获取的技术原理 4148次阅读
- 一文读懂塞班系统和安卓系统的区别 3.2w次阅读
- 车载安卓系统的设计方案和注意事项 4909次阅读
下载排行
本周
- 1DH251全极型霍尔效应传感器中文手册
- 0.86 MB | 3次下载 | 免费
- 2RK3506G参考设计
- 0.97 MB | 2次下载 | 3 积分
- 3英飞凌ICL5102 PFC+LLC第二代谐振控制器规格书
- 0.84 MB | 1次下载 | 免费
- 451单片机交通灯仿真
- 0.16 MB | 1次下载 | 2 积分
- 5DH281L全极型霍尔效应传感器中文手册
- 0.71 MB | 1次下载 | 免费
- 6水流量计手册
- 2.4MB | 1次下载 | 免费
- 7LMZ315x0电源模块评估模块用户指南
- 850.76KB | 次下载 | 免费
- 8LMZ12003 SIMPLE SWITCHER电源模块评估模块用户指南
- 660.49KB | 次下载 | 免费
本月
- 1XL4015+LM358恒压恒流电路图
- 0.38 MB | 163次下载 | 1 积分
- 2PCB布线和布局电路设计规则
- 0.40 MB | 73次下载 | 免费
- 3开关电源设计原理手册
- 1.83 MB | 24次下载 | 免费
- 4智能门锁原理图
- 0.39 MB | 15次下载 | 免费
- 5elmo直线电机驱动调试细则
- 4.76 MB | 10次下载 | 6 积分
- 6OAH0428最新规格书(中文)
- 2.52 MB | 10次下载 | 7 积分
- 7BQ76952评估模块
- 3.67MB | 7次下载 | 免费
- 8PC1013三合一快充数据线充电芯片介绍
- 1.03 MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183334次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73806次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多