欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android應(yīng)用啟動白屏處理方案詳解

 更新時(shí)間:2023年02月27日 15:06:04   作者:似曾相識2022  
這篇文章主要為大家介紹了Android應(yīng)用啟動白屏處理方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

相信大家一定遇到過某些App在手機(jī)桌面打開時(shí)會出現(xiàn)短暫或者幾秒鐘的白屏情況吧,沒錯(cuò)那是應(yīng)用程序啟動后系統(tǒng)默認(rèn)的背景色,此時(shí)應(yīng)用的第一個(gè)Activity還未被加載出來,所以不管怎么設(shè)置第一個(gè)Activity的背景色都毫無作用。但細(xì)心的朋友發(fā)現(xiàn),有些App啟動時(shí)白屏的時(shí)間又很短幾乎可以忽略不計(jì)呢?今天就分享一篇關(guān)于App冷啟動處理白屏?xí)r間過長的問題。

首先先聊一聊冷啟動和熱啟動:

  • 冷啟動

殺掉App,此時(shí)的App進(jìn)程不存在于后臺,啟動時(shí)從Logo頁面開始。

  • 熱啟動

App處于后臺,進(jìn)程未被殺死,重新進(jìn)入前臺時(shí)頁面保持上一次頁面,不會重新啟動。

所以,我們此次所講的屬于冷啟動過程,當(dāng)應(yīng)用程序代碼量小、業(yè)務(wù)邏輯少、體積小時(shí),App啟動還是比較快,白屏?xí)r間可以忽略不計(jì)。一旦初始化工具過多,首頁業(yè)務(wù)邏輯過多時(shí)啟動速度會嚴(yán)重變慢,此時(shí)的白屏?xí)r間會越來越長,給人一種極差的體驗(yàn)。我們需要做的就是在白屏?xí)r間盡可能快速的展示Logo等圖標(biāo),讓它成為一個(gè)過渡,待應(yīng)用程序準(zhǔn)備好后跳轉(zhuǎn)到相應(yīng)頁面以提高用戶體驗(yàn)。

配置一個(gè)SplashActivity

首先,需要配置一個(gè)SplashActivity(應(yīng)用展示的第一個(gè)Activity)的主題

<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- 將splash圖片設(shè)置在這,這樣這張圖片取代白屏 -->
    <item name="android:windowBackground">@drawable/logo_drawable</item>
    <item name="android:windowAnimationStyle">@style/notAnimation</item>
    <!--將頂部狀態(tài)欄設(shè)置為透明,并將界面內(nèi)容布局上邊界上提至狀態(tài)欄頂部-->
    <item name="android:windowTranslucentStatus">true</item>
    <!--如果有底部虛擬導(dǎo)航欄,則將底部虛擬導(dǎo)航欄設(shè)置為透明,并將界面內(nèi)容布局下邊界下沉至虛擬導(dǎo)航欄底部-->
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">true</item>
</style>

其中windowBackground是我們本次重點(diǎn)配置,windowAnimationStyle是取消頁面的一些動畫效果,一般首頁我們讓它無動畫,其他設(shè)置根據(jù)自己情況設(shè)置即可。

讓我們來看看logo_drawable

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="#ffffffff"/>
    </item>
    <item
        android:top="208dp"
        android:bottom="453dp">
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_logo" />
    </item>
</layer-list>

白色背景上疊加一個(gè)bitmap,這里需要注意的是bitmap外層的item標(biāo)簽一定要根據(jù)設(shè)計(jì)稿配置好上下邊距,否則運(yùn)行App后的效果會被鋪滿屏幕。

然后我們將上面的主題配置到activity中,此時(shí)SplashActivity的布局文件中可以什么都不寫,因?yàn)樵撝黝}就相當(dāng)于背景,如果此處編寫頁面可能會和背景l(fā)ogo重合,僅需要編寫一些邏輯和跳轉(zhuǎn)處理。

<activity
    android:name=".ui.splash.SplashActivity"
    android:configChanges="orientation|screenSize"
    android:exported="true"
    android:launchMode="singleTop"
    android:screenOrientation="portrait"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

至此,再次運(yùn)行打開App發(fā)現(xiàn),幾乎點(diǎn)開就是我們配置的logo,完美處理白屏問題。

注意:

如果項(xiàng)目使用了UI適配的三方庫,例如androidAutoSize,一定記得根據(jù)文檔處理放棄啟動頁適配,否則運(yùn)行出來的效果也是不如意。

總結(jié)

白屏處理其實(shí)就是通過主題配置一個(gè)背景,在加載頁面時(shí)會首先顯示該背景,無需渲染頁面,所以App打開就能很快展示Logo,一般延遲一兩秒再跳轉(zhuǎn)首頁達(dá)到一個(gè)良好的用戶體驗(yàn)。

以上就是Android應(yīng)用啟動白屏處理方案詳解的詳細(xì)內(nèi)容,更多關(guān)于Android啟動白屏處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Flutter 用自定義轉(zhuǎn)場動畫實(shí)現(xiàn)頁面切換

    Flutter 用自定義轉(zhuǎn)場動畫實(shí)現(xiàn)頁面切換

    本篇介紹了 fluro 導(dǎo)航到其他頁面的自定義轉(zhuǎn)場動畫實(shí)現(xiàn),F(xiàn)lutter本身提供了不少預(yù)定義的轉(zhuǎn)場動畫,可以通過 transitionBuilder 參數(shù)設(shè)計(jì)多種多樣的轉(zhuǎn)場動畫,也可以通過自定義的 AnimatedWidget實(shí)現(xiàn)個(gè)性化的轉(zhuǎn)場動畫效果。
    2021-06-06
  • Android自定義Dialog的方法實(shí)例

    Android自定義Dialog的方法實(shí)例

    所有的對話框,都是直接或間接繼承自Dialog類,下面這篇文章主要給大家介紹了關(guān)于Android自定義Dialog的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Android實(shí)現(xiàn)畫板功能(二)

    Android實(shí)現(xiàn)畫板功能(二)

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)畫板功能的第二篇,使用imageView,bitmap方式實(shí)現(xiàn)畫板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Android-Okhttp的使用解析

    Android-Okhttp的使用解析

    okhttp是Android6.0推出的網(wǎng)絡(luò)框架。這篇文章主要介紹了Android-Okhttp的使用解析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Android中ContextMenu用法實(shí)例

    Android中ContextMenu用法實(shí)例

    這篇文章主要介紹了Android中ContextMenu用法,實(shí)例分析了Android上下文菜單ContextMenu的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Android 判斷屏幕開關(guān)狀態(tài)方式總結(jié)

    Android 判斷屏幕開關(guān)狀態(tài)方式總結(jié)

    這篇文章主要介紹了Android 判斷屏幕開關(guān)狀態(tài)方式總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Android線程管理之ActivityThread

    Android線程管理之ActivityThread

    線程通信、ActivityThread及Thread類是理解Android線程管理的關(guān)鍵。通過本文給大家介紹Android線程管理之ActivityThread 的相關(guān)知識,對android線程管理相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Android實(shí)現(xiàn)手勢滑動多點(diǎn)觸摸縮放平移圖片效果

    Android實(shí)現(xiàn)手勢滑動多點(diǎn)觸摸縮放平移圖片效果

    這篇文章主要介紹了Android實(shí)現(xiàn)手勢滑動多點(diǎn)觸摸縮放平移圖片效果,實(shí)現(xiàn)圖片支持多點(diǎn)觸控,自由的進(jìn)行縮放、平移的注意事項(xiàng),感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android studio保存logcat日志到本地的操作

    Android studio保存logcat日志到本地的操作

    這篇文章主要介紹了Android studio保存logcat日志到本地的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Android 5.0+ 屏幕錄制實(shí)現(xiàn)的示例代碼

    Android 5.0+ 屏幕錄制實(shí)現(xiàn)的示例代碼

    這篇文章主要介紹了Android 5.0+ 屏幕錄制實(shí)現(xiàn)的示例代碼,從 5.0 開始,系統(tǒng)提供給了 app 錄制屏幕的一系列方法,不需要 root 權(quán)限,只需要用戶授權(quán)即可錄屏,相對來說較為簡單,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論