標籤:android style blog tar width get
跟蹤代碼發現,應用啟動時的白屏會持續到draw調用完成,這個過程中任何耗時操作將導致白屏時間增長。
1.adb shell am start -W -n yourpakagename/MainActivity
-W: wait for launch to complete 這裡的launch to complete一直沒理解是到哪裡
優點:可快速測試啟動時間,與其他應用進行對比。
但第一個頁面展示的時間不太一樣。
2.System.currentTimeMillis()
本打算用它測試1到底是誰的時間,可惜date +%s%N在android裡面不好使,只能列印秒,沒有納秒也就無法顯示毫秒。
雖然其他應用可以在調用shell之前列印時間,但列印時間到shell執行中途似乎時間很不準備。也就無法考證了。
2. Log.e("TimeRun", "resume " + android.os.Process.getElapsedCpuTime());
列印進程已耗用時間,和2一樣,快速分析不好使,具體分析也不好使。
3.還是traceView在大概知道程式有問題的情況下好使
android.os.Debug.startMethodTracing("application");
android.os.Debug.stopMethodTracing();
產生/sdcard/application.trace檔案,使用traceview開啟可以跟蹤啟動時耗時的函數
我的程式啟動在1s以上,發現大部分消耗在布局和繪圖上,原來如果布局中每增加一個比較大的imageview時,上述時間都會數十上百毫秒的時間遞增。
而前面為了匹配各種機型,直接使用了720*720的圖片,背景,遮罩,等等有5層,這個速度直線飆升呀。
以後還是針對不同機型採用不同的尺寸吧。對於大尺寸的,希望有哪位朋友能幫忙指點一下。
最好還是結合1和3共同分析