Zhang Mingyun
Zhang Mingyun
可以看一看这篇文章。 [不要在Android的Application对象中缓存数据!](http://zmywly8866.github.io/2014/12/26/android-do-not-store-data-in-the-application-object.html)
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
出现这个问题的原因是启动一个activity到完全显示是需要时间的,这段时间超过了人眼能感受到的界面变化的时间,所以就会出现所谓的闪屏现象。 可以考虑在AndroidManifest.xml文件中给第二个Activity设置theme时,用“android:windowBackground”属性为activity设置默认界面,这样第二个页面显示status bar时是相对于第二个activity的默认背景在变化,而不是相对于第一个activity的页面在变化,有可能解决你的问题。
@zourb 你这样改动不就是在改视觉效果吗?
@yanbober 正解,OOM是APP会OOM,不是系统OOM,机身内存是整个系统的内存,两者不能混淆了。
1、主题:同一个APP,使用不同的主题在启动的时候给人的感觉完全不一样,比如你给APP的主题设置为透明,其实仅仅是将之前会黑一下改为全透明而已,APP启动时间还是那么长,但给人的感官就完全不一样,因为一直显示同一个界面的时间太长; 2、动画:splash界面的过渡动画效果很重要,只要保持界面一直在动就会给人一种流畅的感觉; 3、资源:每个APP从启动到跑入口的onCreate方法这段时间长短不一,这与APP的资源复杂程度有关,所以需要考虑优化资源(这个问题之前优化过很久,没多大效果,对中间层不是很熟,还望大拿做详细解答)。
一个程序开了多个进程时,每一个进程都会跑一遍application,如果针对不同进程在application中有不同的初始化操作,可以通过获取当前进程的名称来分条件处理。