那麼在優化啟動也的時候我們應該逐步的分析啟動頁的邏輯,熟悉了啟動頁的執行邏輯才能更好的優化啟動頁的載入速度。
(1)我們在啟動頁做了什麼?
我們的啟動頁面主要用於展示啟動頁面,載入網路配置資訊;
具體而言:
載入請求使用者資訊
載入首頁地圖頁面需要展示的圖示
延時三秒鐘跳轉首頁面,這時候無論是否載入到前面的網路請求資訊,都會跳轉到首頁面
(2)那些可以優化的地方?
這樣看來由於我們在啟動頁面有網路請求,所以主動的延時3秒鐘跳轉首頁,所以造成了我們的啟動頁面載入過慢,所以我們首要的優化地方就是在網路請求與延時跳轉這方面。
(3)如何優化?
現在的邏輯是無論配置資訊是否拉取成功都需要在3秒鐘的時候跳轉主頁面,可以這樣考慮,若這三個配置資訊拉取的時間小於3秒鐘其實不必要等到3秒鐘在跳轉主介面;思路已經出來了,剩下的就是具體實現了。。
(4)啟動頁面網路請求優化的具體實踐
timer = new timer();
timertask = new timertask()
if (isloadstartquerycomplete && isloaduserinfocomplete)
} };
timer.schedule(timertask, 0, 100);
123
4567
891011
1213
1415
1617
181912
3456
78910
1112
1314
1516
1718
19
在這裡我們建立乙個timer任務,每隔100ms執行一次,判斷這兩個拉取網路配置資訊的非同步訊息是否已經完成,若已經完成的話則傳送handler訊息跳轉主介面,若2秒鐘之內都沒有完成拉取任務,則直接跳轉同時取消timer任務。
簡單來說就是啟動頁面最長的等待時間為2秒鐘,若兩秒鐘之內啟動頁面的網路請求資訊還沒有完成也不在等待直接跳轉主頁面,而若在2秒鐘之內啟動頁面的網路請求執行完畢,則直接跳轉不必等到2秒鐘之後再跳轉,這樣我們啟動頁面就根據網路請求的情況大大縮短了載入時間。
這裡我們簡單的實現啟動頁面的動畫效果的實現:
//漸變展示啟動屏
alphaanimation alphaanimation = new alphaanimation(0.3f,1.0f);
alphaanimation.setduration(2000);
contentview.startanimation(alphaanimation);
alphaanimation.setanimationlistener(new animationlistener()
@override
public void onanimationrepeat(animation animation)
@override
public void onanimationstart(animation animation)
});12
3456
78910
1112
1314
1516
1718
1920211
2345
6789
1011
1213
1415
1617
1819
2021
而這裡的contentview就是我們啟動頁activity的主view,所以這裡的執行效果就是我們的啟動頁activity的介面的透明度逐漸增加,這樣在使用者看來由於有了一層loading效果,載入速度顯得很快。
@drawable/start_background
1
1
@color/c10
1
1
/**
* startactivity遮蔽物理返回按鈕
* * @param keycode
* @param event
* @return
*/ @override
public boolean onkeydown(int keycode, keyevent event)
return super.onkeydown(keycode, event);
}
123
4567
891011
1213141
2345
6789
1011
1213
14
這裡我們重寫啟動頁面activity的onkeydown方法,首先判斷使用者按下的是否是返回按鍵,若是的話則直接返回true,遮蔽返回按鍵的後續執行邏輯。關於返回按鍵的執行流程,可參考我的android系統返回按鍵執行流程:android原始碼解析(二十九)–>應用程式返回按鍵執行流程
以上就是個人總結的啟動頁中一些要點或者是需要注意的地方,個人能力不足有不對的地方歡迎指正。
另外對產品研發技術,技巧,實踐方面感興趣的同學可以參考我的:
android產品研發–>總結(持續更新)
android產品研發(一)–>實用開發規範
本文以同步至github中:歡迎star和follow
產品策劃二 App啟動頁的相關
從左到右依次是 facebook pinterest snapchat vine 啟動頁適合用來做以下幾個事情 2 運營活動 what s new 3 品牌廣告推廣 手機qq的生日問候啟 ps 手機qq的啟動頁還有個小彩蛋,如果今天是你生日,啟動頁會變成對你是生日祝福語。好窩心啊 啟動頁策劃方案 注...
android 視差特效 啟動頁
列表橫向滑動,同時背景跟隨滑動而偏移滑動,同時帶有動態的效果,滑動列表最後乙個,滑動到下個頁面,同時可以從下個頁面滑動到上個頁面。簡單分析,兩個頁面間滑動可以使用viewpager來實現,頁面間的效果,有透明度和大小的漸變,可以通過viewpager的切換動畫來實現。同理,列表頁面也可以使用view...
Android 閃屏啟動頁全面屏適配
隨著全面屏手機普及,目前市面上的手機螢幕尺寸大致分為三種 非全面屏 16 9 全面屏 18 9 全面屏 18 9 true mipmap splash false 同一套在全面屏和非全面屏手機上會出現變形問題 這裡有幾個辦法可解決 首先需要在清單檔案中配置最大螢幕比 注 螢幕的寬高比,目前適配2.2...