一.概述(App的3种启动方式。分别是冷启动、热启动、温启动)
1.1 冷启动app没有启动过或者进程被杀死,系统不存在该app进程,此时启动为冷启动;冷启动流程就是app启动流程全过程,包括创建app进程、加载资源、启动Main Thread、初始化SplashActivity等等;我们写的就是冷启动。
1.2 热启动意味着:app进程只是出于后台,系统只是把它从后台带到前台,展示给用户;
1.3 介于二者之间,一般有以下两种情况:
1>:用户点击back键退出,又重新启动;
2>:用户退出app后,在onCreate()中恢复之前用 onSaveInstanceState() 中保存的状态;
二.App的启动流程
由于我们的APP都是冷启动所以我总结了以下几点:
冷启动的流程:
- 加载和启动应用程序;
- App启动之后立即展示出一个空白的启动窗口;
- 创建App程序的进程;
在这三个任务执行后,系统创建了应用进程,那么应用进程会执行下一步:
- 创建App对象;
- 启动Main Thread;
- 创建启动页的Activity;
- 加载View;
- 布置屏幕;
- 进行初始绘制;
但是大家都发现了APP都有启动页,这是因为用户点开APP到显示中间有一个时间断,在这一段时间和是黑屏或者是白屏所以需要特殊的方法来设置
1首先自定义style
<style name="WelcomeTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/shape_welcome</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
</style>
2shape_welcome 设置
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@android:color/white"/>
<item>
<bitmap
android:src="图片"
android:gravity="center"/>
</item>
</layer-list>
3启动页APP风格设置
android:theme="@style/WelcomeTheme"
完成
参考的他