冷啟動(cold start)
- 冷啟動是指應(yīng)用尚未運行,系統(tǒng)創(chuàng)建進程并初始化應(yīng)用。
- 熱啟動是指應(yīng)用已經(jīng)運行但是在后臺被掛起,從后臺恢復(fù)應(yīng)用。
冷啟動時間稍微會長一點,在此期間可能會看到白屏或黑屏或感受到明顯的啟動延遲(背景設(shè)為透明)
解決方法是優(yōu)化初始化邏輯或使用閃屏。
閃屏(splash)
閃屏是應(yīng)用每次冷啟動過程中展示給用戶的一個過渡頁面。
用于減緩用戶在打開應(yīng)用時等待的焦慮情緒(欺騙用戶以掩蓋啟動慢的事實)。
由于閃屏通常是一張背景圖片,無法擁有交互,也不能動態(tài)修改,無法承載營銷需求,所以需要啟動頁。
啟動頁(launch)
啟動頁(launch)是一個每次啟動后展示的類似閃屏的頁面,根據(jù)服務(wù)端展示不同的些營銷活動廣告圖片并引導(dǎo)用戶點擊。
由于下載時間不確定,啟動圖通常會緩存并在下次啟動時使用。
引導(dǎo)頁(guide)
引導(dǎo)頁是在用戶安裝或更新第一次啟動后展示的數(shù)個頁面。
通常用于介紹應(yīng)用的 核心概念,功能玩法,使用場景,重大變更。
為了降低用戶反感程度,引導(dǎo)頁數(shù)通常越少越好(< 5),并提供“跳過”按鈕。
啟動頁可以算是形似閃屏且只有一個頁面的引導(dǎo)頁。
啟動流程
雖然 Apple 也曾經(jīng)在《iOS 人機交互手冊》里建議盡量不要展示閃屏或其它啟動體驗。
盡量避免展示閃屏或其它啟動體驗,讓用戶能立即使用是最好的。
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ǎo)頁 現(xiàn)在已經(jīng)成為應(yīng)用標配,一起組成了現(xiàn)在常見的啟動流程,同時用于展示品牌性格,廣告營銷入口。
Android 實現(xiàn)閃屏
使用 android:windowBackground 實現(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>
注意:在有虛擬按鍵的手機上,閃屏底部會會被虛擬按鍵擋信,這點在設(shè)計時需要考慮到。
iOS 實現(xiàn)閃屏
有兩種方式
-
靜態(tài)啟動圖集(static launch images)
,根據(jù)要支持的屏幕尺寸提供 Default.png 系列文件即可。 -
啟動圖布局文件(launch screen file)
,只需要一個布局文件就可適配各種屏幕。
參考鏈接
app為什么要有啟動頁(Splash screen)
APP設(shè)計之一:啟動頁
APP設(shè)計之二:引導(dǎo)頁
iOS開發(fā)時如何使用 Launch Screen Storyboard
Cold Start Times: An Analysis of Top Apps
Avoiding cold starts on Android
Facebook iOS App如何優(yōu)化啟動時間