啟動(dòng)速度與執(zhí)行效率優(yōu)化項(xiàng)目實(shí)戰(zhàn)(二):?jiǎn)?dòng)黑白屏解決

img

為什么會(huì)有黑白屏

在桌面點(diǎn)擊應(yīng)用圖標(biāo)后,在app進(jìn)程沒有創(chuàng)建的情況下,需要時(shí)間創(chuàng)建app進(jìn)程,初始化資源,以及啟動(dòng)首頁Activity的(這里討論的首頁是指AndroidManifest里面標(biāo)志的啟動(dòng)頁),這就意味點(diǎn)擊圖標(biāo)不能馬上看到啟動(dòng)頁。為了不讓用戶有卡頓的感覺,谷歌有了Preview Window,在啟動(dòng)頁沒有繪制完成時(shí),會(huì)先初始化一個(gè)Window,我們通常看到的黑屏或白屏,就是這個(gè)預(yù)覽窗口。

怎么知道是黑屏還是白屏?

黑白屏是預(yù)加載的窗口,這個(gè)窗口的一些屬性可以在theme里更改。新建一個(gè)項(xiàng)目,會(huì)在AndroidManifest的application所屬標(biāo)簽里面的內(nèi)容看到android:theme="@style/AppTheme",這個(gè)是默認(rèn)的theme。查看這個(gè)AppTheme,找到name="android:windowBackground"這個(gè)屬性,查看屬性下的內(nèi)容,就能知道是黑屏還是白屏,這個(gè)屬性就是設(shè)置預(yù)覽窗口的背景。無論是黑屏還是白屏,給用戶的體驗(yàn)都不好,所以就有了把背景設(shè)為透明或者用一張圖片來作為啟動(dòng)背景的解決辦法。這些只是很基本的解決辦法,而且存在一定的弊端,既然我們要讓用戶體驗(yàn)更好,就應(yīng)該處理得更加優(yōu)雅一些。

如何優(yōu)雅的解決黑白屏

解決黑白屏,需要和啟動(dòng)頁結(jié)合起來。現(xiàn)在的APP基本上都有閃屏頁,有些是為了加載廣告,有些是為了通過閃屏頁初始化App的一些資源,本篇文章就討論有閃屏的啟動(dòng)頁,以網(wǎng)易云音樂對(duì)預(yù)加載窗口和閃屏頁的處理來舉例。來看看網(wǎng)易云的預(yù)加載頁和啟動(dòng)頁。

img
img

第一張是預(yù)加載頁,第二張是閃屏頁,閃屏頁只比預(yù)加載頁多了底部的圖標(biāo)和網(wǎng)易云音樂這四個(gè)字(其實(shí)是一整體,一張圖片),而且給人的感覺是一直是預(yù)加載頁,不過底部的圖標(biāo)和文字會(huì)慢慢出現(xiàn),這樣的處理比單獨(dú)的顯示圖片或者設(shè)置為透明更讓人能夠接受。下面我們就來看看代碼。

styles文件自定義Theme

<style name="AppTheme.lanuchTheme" >
      <item name="android:windowBackground">@drawable/launch_layout</item>
      <item name="android:windowFullscreen">true</item>
      <item name="android:windowNoTitle">true</item>
      <item name="android:windowContentOverlay">@null</item>

launch_layout,代碼中的top_img,是“音樂的力量”四個(gè)字的圖片。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/holo_red_dark"/>
  <item android:top="150dp">
      <bitmap android:gravity="top" android:src="@mipmap/top_img" />
  </item>
</layer-list>

SplashActivity的布局文件為

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/bottom_imag"http://bottom_imag為底部的圖標(biāo)和文字
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="50dp"
        />
</RelativeLayout>

最后在AndroidManifest里將lanuchTheme設(shè)置給閃屏頁(下文用SplashActivity表示),就大功告成了。

寫以上布局需要注意:由于沒有給SplashActivity的布局設(shè)置背景色,也就是透明色,而兩個(gè)頁面的區(qū)別只有底部加了一張圖片,所以在SplashActivity的布局中就不需要再把預(yù)加載頁的內(nèi)容再寫一次。

總結(jié)

黑白屏的解決是為了讓用戶覺得點(diǎn)擊圖標(biāo)就得到了響應(yīng),App啟動(dòng)很順暢,這個(gè)過程能在視覺上給人美感,那就更好了。不同的應(yīng)用場(chǎng)景可以有不同的解決辦法,不一定是有閃屏頁,也不一定要和網(wǎng)易云音樂一樣,也可以在閃屏頁寫一個(gè)動(dòng)畫或其它效果。想弄懂黑白屏,可以先做做以下功課

  • 本篇網(wǎng)易云音樂解決方案的原理
  • 明白為什么自定義theme,并且單獨(dú)設(shè)置給Activity
  • 了解layer_list可以做什么

弄明白這幾個(gè)問題,解決黑白屏就不是什么難事了。

最后對(duì)于程序員來說,要學(xué)習(xí)的知識(shí)內(nèi)容、技術(shù)有太多太多,要想不被環(huán)境淘汰就只有不斷提升自己,從來都是我們?nèi)ミm應(yīng)環(huán)境,而不是環(huán)境來適應(yīng)我們!

這里附上上述的技術(shù)體系圖相關(guān)的幾十套騰訊、頭條、阿里、美團(tuán)等公司19年的面試題,把技術(shù)點(diǎn)整理成了視頻和PDF(實(shí)際上比預(yù)期多花了不少精力),包含知識(shí)脈絡(luò) + 諸多細(xì)節(jié),由于篇幅有限,這里以圖片的形式給大家展示一部分。

相信它會(huì)給大家?guī)砗芏嗍斋@:

img
img

上述【高清技術(shù)腦圖】以及【配套的架構(gòu)技術(shù)PDF】可以 關(guān)注我 【主頁簡(jiǎn)介】 或者【簡(jiǎn)信】免費(fèi)獲取

當(dāng)程序員容易,當(dāng)一個(gè)優(yōu)秀的程序員是需要不斷學(xué)習(xí)的,從初級(jí)程序員到高級(jí)程序員,從初級(jí)架構(gòu)師到資深架構(gòu)師,或者走向管理,從技術(shù)經(jīng)理到技術(shù)總監(jiān),每個(gè)階段都需要掌握不同的能力。早早確定自己的職業(yè)方向,才能在工作和能力提升中甩開同齡人

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,011評(píng)論 3 413
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,323評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,874評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評(píng)論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,095評(píng)論 0 286
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,605評(píng)論 1 331
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,551評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,720評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,961評(píng)論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評(píng)論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,330評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,690評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容

  • 一,黑白屏解決方案 一號(hào)方案 不推薦使用 二號(hào)方案真正好的優(yōu)化是順著谷歌的設(shè)計(jì)來 思路 1,取代空白窗體部分 2...
    GoodWen閱讀 437評(píng)論 0 0
  • 技術(shù)點(diǎn): 1、傳說中的黑白屏問題優(yōu)化 2、黑白屏在商業(yè)App中的價(jià)值 3、App啟動(dòng)流程 4、如何使用Tracev...
    Dear月閱讀 306評(píng)論 0 0
  • 在開發(fā)過程中我們發(fā)現(xiàn)在啟動(dòng)有些app的時(shí)候,出現(xiàn)短時(shí)間黑屏或者白屏閃爍之后進(jìn)入開屏頁面,但是有些app在啟動(dòng)的過程...
    GerDScarlet閱讀 2,943評(píng)論 1 15
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開好到教室時(shí),離放學(xué)已經(jīng)沒多少時(shí)間了。班主任說已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,537評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,587評(píng)論 0 11