起源:
最近发现一个项目安装包只有5M,但是每次安装后都会冷白屏5-10秒,我很郁闷,到底什么什么鬼导致的呢?
先介绍下版本:
android studio 2.12,gradele 2.1.2
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
}
难道是启动页加载问题?
立马检查启动页,去掉所有页面处理逻辑,首次启动白屏很久。
application耗时?
去掉所有application逻辑代码,再次启动,我的天,居然还是很慢,4-5s。
总结:
看来白屏是在application创建之前,鉴于只是第一次打开白屏,可以猜想它是由一个解压操作造成的耗时,而且是程序启动之前,那是什么原因呢?
先不说了,赶紧先给个主题背景,省的看着心烦
<style name="Theme.UMDefault" parent="@android:style/Theme.Light.NoTitleBar" >
<item name="android:windowBackground">@drawable/logo</item>
<item name="android:fitsSystemWindows">true</item>
</style>
下面开始查看android studio日志

app在白屏期间这几个/files/instant-run/dex/slice-slice_1-classes.dex一直卡在这里,缓慢一个个进行。从文件名上看,可以猜测到Instant Run热更新将一个完整app拆成N个小的dex文件,更新的时候只需替换对应dex文件即可,但是这个操作为什么那么慢呢,查询后才发现是个bug。
找到问题就好办了:
先果断去掉instant run功能,用gradle2.0.0试试

看来我想多了,提示要升级,好吧。
其他办法:
随后,我试了多种办法,暂时没发现解决之道,还好正式版没这个bug。
庆幸:
很庆幸,这个bug只是在调试过程中debug版本里有,打了一个release包,签名后没有这个bug,省去了很多麻烦。