相信大家都知道冷启动实现APP秒开(消除启动时的白屏/黑屏)的做法,简单来说就是定义Splash页面windowBackground属性。但是今天拿到的这个启动图有点大:
上图很明显比普通的启动图大一些,我再放个普通的启动图大家可以对比一下:
大就大呗,反正Splash页面就显示一下下。可是等我finish掉Splash后,隐隐发现内存有点不对:
多次gc后内存居然还是停留在40mb,惆怅啊。。。
我感叹道:python是世界上最好的语言。。这时候一篇文拯救了我:关于android使用大量Drawable发生OOM的解决方案。简单来说就是layout设置background或者setBackgroundResource,需要合理手动释放图片资源。
于是解决方案诞生:
@Override
protected void onDestroy() {
getWindow().setBackgroundDrawable(null);//theme里面设置了windowBackground,需要清理
super.onDestroy();
}
结果内存消耗降到正常的20mb:
(注意:style必须设置android:windowBackground而不是android:background)