Android中MultiDex优化

MultiDex基本思路

当一个Dex文件太肥的时候(方法数目太多、文件太大),在打包或在安装或运行apk也会出问题。 解决方法就是将这个硕大的Dex文件拆分成若干个小的Dex文件。 刚好一个ClassLoader可以有多个DexFile。

MultiDex主要性能瓶颈

解压缩和Dex优化(dexopt)

MultiDex优化方式

(1)PreMultiDex方案

大致思路是,使用内置的apk更新功能把新版本的apk文件下载下来后,先在Worker线程里做好MultiDex的解压和Optimize工作。

缺陷:使用场景有限,仅在apk更新场景有效

(2)异步MultiDex方案

启动App的时候,先显示一个简单的Splash闪屏界面,然后启动Worker线程执行MultiDex#install(Context)工作,就可以避免UI线程阻塞。

缺陷:需要手动分包, 确保应用正常启动,并且启动MultiDex#install(Context)所需要的类都在主dex里面,而且需要处理好进程同步问题。

相关推荐
2501_915921434 小时前
iOS App 电耗管理 通过系统电池记录、Xcode Instruments 与克魔(KeyMob)组合使用
android·ios·小程序·https·uni-app·iphone·webview
June bug6 小时前
【配环境】安卓项目开发环境
android
2501_944526428 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 蜘蛛纸牌游戏实现
android·java·python·flutter·游戏
csj509 小时前
安卓基础之《(18)—内容提供者(4)在应用之间共享文件》
android
尤老师FPGA9 小时前
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十五讲)
android·java·ui
北辰当尹10 小时前
xml基础
android·xml
龙之叶10 小时前
【Android Monkey源码解析四】- 异常捕获/页面控制
android·windows·adb·monkey
_F_y12 小时前
MySQL表的操作
android·数据库·mysql
yngsqq13 小时前
AndroidStudio汉化步骤
android
HyEISN13 小时前
Android 9 开启远程adb
android·adb