冷啟動(dòng)(cold start)
- 冷啟動(dòng)是指應(yīng)用尚未運(yùn)行,系統(tǒng)創(chuàng)建進(jìn)程并初始化應(yīng)用。
- 熱啟動(dòng)是指應(yīng)用已經(jīng)運(yùn)行但是在后臺被掛起,從后臺恢復(fù)應(yīng)用。
冷啟動(dòng)時(shí)間稍微會長一點(diǎn),在此期間可能會看到白屏或黑屏或感受到明顯的啟動(dòng)延遲(背景設(shè)為透明)
解決方法是優(yōu)化初始化邏輯或使用閃屏。
閃屏(splash)
閃屏是應(yīng)用每次冷啟動(dòng)過程中展示給用戶的一個(gè)過渡頁面。
用于減緩用戶在打開應(yīng)用時(shí)等待的焦慮情緒(欺騙用戶以掩蓋啟動(dòng)慢的事實(shí))。
由于閃屏通常是一張背景圖片,無法擁有交互,也不能動(dòng)態(tài)修改,無法承載營銷需求,所以需要啟動(dòng)頁。
啟動(dòng)頁(launch)
啟動(dòng)頁(launch)是一個(gè)每次啟動(dòng)后展示的類似閃屏的頁面,根據(jù)服務(wù)端展示不同的些營銷活動(dòng)廣告圖片并引導(dǎo)用戶點(diǎn)擊。
由于下載時(shí)間不確定,啟動(dòng)圖通常會緩存并在下次啟動(dòng)時(shí)使用。
引導(dǎo)頁(guide)
引導(dǎo)頁是在用戶安裝或更新第一次啟動(dòng)后展示的數(shù)個(gè)頁面。
通常用于介紹應(yīng)用的 核心概念,功能玩法,使用場景,重大變更。
為了降低用戶反感程度,引導(dǎo)頁數(shù)通常越少越好(< 5),并提供“跳過”按鈕。
啟動(dòng)頁可以算是形似閃屏且只有一個(gè)頁面的引導(dǎo)頁。
啟動(dòng)流程

雖然 Apple 也曾經(jīng)在《iOS 人機(jī)交互手冊》里建議盡量不要展示閃屏或其它啟動(dòng)體驗(yàn)。
盡量避免展示閃屏或其它啟動(dòng)體驗(yàn),讓用戶能立即使用是最好的。
As much as possible, avoid displaying a splash screen or other startup experience. It’s best when users can begin using your app immediately.
然而,閃屏/啟動(dòng)頁/引導(dǎo)頁 現(xiàn)在已經(jīng)成為應(yīng)用標(biāo)配,一起組成了現(xiàn)在常見的啟動(dòng)流程,同時(shí)用于展示品牌性格,廣告營銷入口。
Android 實(shí)現(xiàn)閃屏
使用 android:windowBackground 實(shí)現(xiàn)閃屏
- 定義背景圖
drawable/splash
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/gray"/>
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher"/>
</item>
</layer-list>
- 定義閃屏頁主題
ThemeSplash
<resources>
<style name="ThemeSplash" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
</style>
</resources>
- 在閃屏頁使用主題
ThemeSplash
<activity
android:name=".SplashActivity"
android:theme="@style/ThemeSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
注意:在有虛擬按鍵的手機(jī)上,閃屏底部會會被虛擬按鍵擋信,這點(diǎn)在設(shè)計(jì)時(shí)需要考慮到。
iOS 實(shí)現(xiàn)閃屏
有兩種方式
-
靜態(tài)啟動(dòng)圖集(static launch images),根據(jù)要支持的屏幕尺寸提供 Default.png 系列文件即可。 -
啟動(dòng)圖布局文件(launch screen file),只需要一個(gè)布局文件就可適配各種屏幕。
參考鏈接
app為什么要有啟動(dòng)頁(Splash screen)
APP設(shè)計(jì)之一:啟動(dòng)頁
APP設(shè)計(jì)之二:引導(dǎo)頁
iOS開發(fā)時(shí)如何使用 Launch Screen Storyboard
Cold Start Times: An Analysis of Top Apps
Avoiding cold starts on Android
Facebook iOS App如何優(yōu)化啟動(dòng)時(shí)間