今日头条android反编译,今日头条启动优化:MultiDex 优化(两种方案)

本文探讨了如何优化MultiDex在今日头条Android应用中的加载,提供了两种方案:1) 子线程安装MultiDex,但存在闪屏页引用类需配置在主dex及ContentProvider维护复杂的问题;2) 采用今日头条的方案,通过启动单独进程的LoadDexActivity加载MultiDex,避免影响主线程,确保应用流畅启动。
摘要由CSDN通过智能技术生成

这是第四篇文章了,也是你们最想看的一篇了,想要观看其他文章请持续关注博主,

需要完整文章的可以在评论区留言或者私信博主

2.2.6 MultiDex 优化(两种方案)

知道了MultiDex原理之后,可以理解install过程为什么耗时,因为涉及到解压apk取出dex、压缩dex、将dex文件通过反射转换成DexFile对象、反射替换数组。

那么MultiDex到底应该怎么优化呢,放子线程可行吗?

方案1:子线程install(不推荐)

这个方法大家很容易就能想到,在闪屏页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页。需要注意的是闪屏页的Activity,包括闪屏页中引用到的其它类必须在主dex中,不然在MultiDex.install之前加载这些不在主dex中的类会报错Class

Not Found。这个可以通过gradle配置,如下:

defaultConfig {

//分包,指定某个类在main dex

multiDexEnabled true

multiDexKeepProguard file('multiDexKeep.pro') // 打包到main dex的这些类的混淆规制,没特殊需求就给个空文件

multiDexKeepFile file('maindexlist.txt') // 指定哪些类要放到main dex

}

maindexlist.txt 文件指定哪些类要打包到主dex中,内容格式如下

com/lanshifu/launchtest/SplashActivity.class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值