時間啟動測試:測試從啟動app到主頁面顯示的時間,當打開一個app需要等待的時間過長時就會有一種較差的體驗
為了良好的體驗,一般會在啟動時增加一個啟動頁面,為了緩解用戶等待加載APP數據內容出現的一個界面,有的可能是一個空白頁面
APP的啟動可以分為三種情況:冷啟動、熱啟動、溫啟動
冷啟動:當應用啟動時,后台沒有該應用的進程,系統會重新創建一個進程分配給該應用,也就是實例化application如APP首次安裝后打開
冷啟動的流程即為APP啟動流程的全過程,需要創建APP進程,加載相關資源(,如緩存目錄的生產,數據庫的建立,SharedPreference的初始化),啟動Main Thread,初始化首屏activity
冷啟動場景:1、首次安裝打開app
2、app從后台殺死,重新打開
熱啟動:當應用啟動時,后台已有該應用的進程,這時會從已有的進程來啟動activity(不需要重新創建application)
熱啟動場景:按home鍵退出,進程是保存在后台的,activity由onpusume()和onstop(),變為onresume(),活動可見狀態
溫啟動:用戶退出應用,但隨后重新啟動。該過程可能已繼續運行,但應用程序必須通過調用onCreate()從頭開始重新創建活動
溫啟動場景:1、點擊back返回鍵,退出應用,活動被摧毀ondestroy()
2、app由於內存不足被回收,activity在onPause()和onStop()狀態時,出現了優先級更高的程序需要內存,進程被殺掉
測試項:
1.冷啟動速度
2.熱啟動速度
3.溫啟動速度
操作步驟:
1、獲取包名:adb shell pm list packages
2、獲取啟動Activity:adb shell dumpsys package XXXXX

3.執行命令:adb shell am start -S -W [packageName]/[packageName.MainActivity]
-S 啟動頁面前先強制停止應用, -W 等待啟動完成
測試冷啟動:
1.首次安裝完APP,不打開
執行命令:adb shell am start -W [packageName]/[packageName.MainActivity]
2.將APP從后台殺死
執行命令:adb shell am start -W [packageName]/[packageName.MainActivity]

測試暖啟動:
1.按home鍵推到后台
執行命令:adb shell am start -W [packageName]/[packageName.MainActivity]
測試結果如下圖所示

測試溫啟動:
1.點擊返回鍵,退出應用
執行命令:adb shell am start -W [packageName]/[packageName.MainActivity]
ThisTime:一般和TotalTime時間一樣,除非在應用啟動時開了一個透明的Activity預先處理一些事再顯示出主Activity,這樣將比TotalTime小
TotalTime:應用的啟動時間,包括創建進程+Application初始化+Activity初始化到界面顯示(一般需要關注這個時間,開發可根據這個時間去判斷是否需要優化)
WaitTime:一般比TotalTime大點,包括系統影響的耗時
拓展知識:
一、SharedPreferences接口:為了保存軟件的設置參數,Android平台為我們提供了一個SharedPreferences接口,它是一個輕量級的存儲類,特別適合用於保存軟件配置參數。使用SharedPreferences保存數據,其背后是用xml文件存放數據,文件存放在/data/data//shared_prefs目錄下
一、針對application的介紹:
Application 是用來維護應用程序全局狀態[maintain global application state]的基礎類,Android系統會為每個程序運行時創建一個Application類的對象且僅創建一個,所以Application可以說是單例模式的一個類。且 Application 對象的生命周期是整個程序中最長的,它的生命周期就等於這個程序的生命周期。因為它是全局唯一的,所以在不同的Activity、Service中獲得的對象都是同一個對象。所以通過 Application 來進行一些數據傳遞、數據共享、數據緩存等操作
常見用途:
1.初始化資源,APP啟動時會在application的oncreate()方法中初始化一些全局資源,系統配置,三方sdk等
2.數據共享,由於application對象是全局唯一的,所以可以用來緩存一些全局變量,這些變量在任何地方都可以調用,達到共享目的
3.監聽APP所處狀態,鎖屏開屏,退到后台回到前台,退出應用等
二、activity生命周期
