歡迎光臨
每天分享高質量文章

Android 冷啟動秒開實現

作者:凌空御風
鏈接:https://www.jianshu.com/p/5fd677c8e348


【APP冷啟動秒開】:冷啟動是指應用殺掉行程時的啟動;秒開是指點擊桌面APP的圖標後立即顯示啟動頁面(PS:這個啟動頁面不能是白屏、黑屏或長時間頁面不顯示無反應)。


【優化效果圖】 【對比效果圖】

原因

在給出實現方案之前,先解釋兩個問題:


1、什麼是Android的冷啟動時間?


冷啟動時間是指用戶從桌面點擊APP的那一刻起到啟動頁面的Activity呼叫onCreate()方法之間的這個時間段(通俗點說是從點擊APP到看到APP的啟動頁面顯示的時間)。


2、在冷啟動的時間段發生了什麼?


首先我們要知道當打開一個Activity的時候發生了什麼。在一個Activity打開時,如果該Activity所屬的Application還沒有啟動,那麼系統會為這個Activity創建行程(每創建一個行程都會呼叫一次Application,所以Application的onCreate()方法可能會被呼叫多次),在行程的創建和初始化中,勢必會消耗一些時間,在這個時間里,WindowManager會先加載APP里的主題樣式的視窗背景(Background)作為預覽元素,然後才去真正的加載佈局,如果這個時間過長,而預設的背景又是黑色或者白色,這樣會給用戶造成一種錯覺,這個APP很卡,很不流暢,自然也影響了用戶體驗。

解決方案

知道了上面的2個問題,那麼消除啟動時的黑屏、白屏或無響應的方案就有了。

設置啟動頁面的theme,配置上相應的slogan,如圖一所示,註意這兒不用windowBackground而是用background,因為在有底部虛擬導航欄的手機上slogan顯示會變動。


image

loading_bg檔案如下,底部放置一個slogan:


image

將 activity 的背景設置透明。


以上秒開效果只是顯示效果,具體進入軟體的速度還是要減少在application中初始化的時間。


●編號359,輸入編號直達本文

●輸入m獲取到文章目錄

推薦↓↓↓

Java編程

更多推薦18個技術類公眾微信

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

赞(0)

分享創造快樂