冷啟動(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)行但是在后臺(tái)被掛起提佣,從后臺(tái)恢復(fù)應(yīng)用吮蛹。
冷啟動(dòng)時(shí)間稍微會(huì)長(zhǎng)一點(diǎn),在此期間可能會(huì)看到白屏或黑屏或感受到明顯的啟動(dòng)延遲(背景設(shè)為透明)
解決方法是優(yōu)化初始化邏輯或使用閃屏拌屏。
閃屏(splash)
閃屏是應(yīng)用每次冷啟動(dòng)過(guò)程中展示給用戶的一個(gè)過(guò)渡頁(yè)面潮针。
用于減緩用戶在打開(kāi)應(yīng)用時(shí)等待的焦慮情緒(欺騙用戶以掩蓋啟動(dòng)慢的事實(shí))。
由于閃屏通常是一張背景圖片倚喂,無(wú)法擁有交互每篷,也不能動(dòng)態(tài)修改瓣戚,無(wú)法承載營(yíng)銷需求,所以需要啟動(dòng)頁(yè)焦读。
啟動(dòng)頁(yè)(launch)
啟動(dòng)頁(yè)(launch)是一個(gè)每次啟動(dòng)后展示的類似閃屏的頁(yè)面子库,根據(jù)服務(wù)端展示不同的些營(yíng)銷活動(dòng)廣告圖片并引導(dǎo)用戶點(diǎn)擊。
由于下載時(shí)間不確定矗晃,啟動(dòng)圖通常會(huì)緩存并在下次啟動(dòng)時(shí)使用仑嗅。
引導(dǎo)頁(yè)(guide)
引導(dǎo)頁(yè)是在用戶安裝或更新第一次啟動(dòng)后展示的數(shù)個(gè)頁(yè)面。
通常用于介紹應(yīng)用的 核心概念张症,功能玩法仓技,使用場(chǎng)景,重大變更俗他。
為了降低用戶反感程度脖捻,引導(dǎo)頁(yè)數(shù)通常越少越好(< 5),并提供“跳過(guò)”按鈕兆衅。
啟動(dòng)頁(yè)可以算是形似閃屏且只有一個(gè)頁(yè)面的引導(dǎo)頁(yè)地沮。
啟動(dòng)流程
雖然 Apple 也曾經(jīng)在《iOS 人機(jī)交互手冊(cè)》里建議盡量不要展示閃屏或其它啟動(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)頁(yè)/引導(dǎo)頁(yè) 現(xiàn)在已經(jīng)成為應(yīng)用標(biāo)配夕春,一起組成了現(xiàn)在常見(jiàn)的啟動(dòng)流程未荒,同時(shí)用于展示品牌性格,廣告營(yíng)銷入口及志。
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>
- 定義閃屏頁(yè)主題
ThemeSplash
<resources>
<style name="ThemeSplash" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
</style>
</resources>
- 在閃屏頁(yè)使用主題
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ī)上片排,閃屏底部會(huì)會(huì)被虛擬按鍵擋信,這點(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)頁(yè)(Splash screen)
APP設(shè)計(jì)之一:?jiǎn)?dòng)頁(yè)
APP設(shè)計(jì)之二:引導(dǎo)頁(yè)
iOS開(kāi)發(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í)間