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里面,而且需要处理好进程同步问题。

相关推荐
萑澈43 分钟前
更换SIM卡前必看:如何使用ADB导出并筛选指定SIM卡的全部短信
android
希侬44 分钟前
Cursor生成APK加固签名脚本
android
urkay-1 小时前
Android 切换应用语言
android·java·kotlin·iphone·androidx
i***11861 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
apihz2 小时前
批量获取3位未注册短域名免费API接口每日更新
android·服务器·网络·网络协议·tcp/ip
apihz2 小时前
域名注册状态查询免费API接口详细教程
android·服务器·网络·python·tcp/ip
节节虫2 小时前
GLSurfaceView原理深度剖析:从OpenGL ES到Android屏幕的渲染之旅
android
用户41659673693552 小时前
告别 XML ANR?Compose 的性能陷阱与重组优化实战指南
android
私人珍藏库2 小时前
[Android] 轻小说文库(1.23)
android·app·安卓·工具