测试一个应用的首页启动时间:
adb shell am start -W -n 包名/包名.activity.MainActivity
冷启动
热启动 超热启动
超超超级热启动
Jake Wharton大神的hugo可以帮助我们知道那个方法最耗时。
参考:
-
Android App启动优化深度实践 (由2.4s优化到1s以内)
MyApplication的0秒超神初始化
这篇文章主要方法是减少了重复逻辑方法,和把一些初始化放在子线程,我把初始化放在子线程的效果:
-
启动页白屏或黑屏解决方案,并不能加快,只是让用户看起来快。
https://blog.csdn.net/niceyoo/article/details/57073464
这篇文章其实主要就两个方法,一个设置window透明,一个设置window背景为启动图片。- 设置透明的缺点:是点击了图标要等一下,感觉像是没有点击中图标的效果,手机好的话可以忽略。
- 设置背景图片的缺点:全面屏,顶部电量栏白色,我使用ImmersionBar让其全屏适配,但是适配会在window背景图显示效果之后。给人的感觉就是先是一张启动图片,然后图片撑满的效果。
-
全面屏白屏:
https://blog.csdn.net/zheng_jiao/article/details/94010893
最佳效果配置(效果1):
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/white</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowNoTitle">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@drawable/splash</item>
</style>
效果1:
<item name="android:windowTranslucentStatus">true</item>
:
效果2:
<item name="android:windowLightStatusBar">true</item>
效果3:
<item name="android:windowLightStatusBar">false</item>
or
<item name="android:windowTranslucentStatus">false</item>
但我想要的效果是直接不要电量栏部分,但始终没有找到配置的方法,寻找中...
网友评论