1、概念:
冷啟動:當啟動應用時,後台沒有該應用的程序,這時系統會重新建立乙個新的程序分配給該應用,這個啟動方式就是冷啟動。
熱啟動:當啟動應用時,後台已有該應用的程序(例:按back鍵、home鍵,應用雖然會退出,但是該應用的程序是依然會保留在後台,可進入任務列表檢視),所以在已有進 程的情況下,這種啟動會從已有的程序中來啟動應用,這個方式叫熱啟動。
2、am start -w packagename/activity 命令 (w大寫)
waittime:包括前乙個應用 activity pause 的時間和新應用啟動的時間,稍微大點。
totaltime: 表示新應用啟動的耗時,包括新程序的啟動和 activity 的啟動,但不包括前乙個應用activity pause的耗時(真正的啟動耗時)
thistime: 表示一連串啟動 activity 的最後乙個 activity 的啟動耗時
測試方法:adb shell am start -w packagename/mainactivity
命令,計算啟動時間
示例:adb shell am start -w com.android.calculator2/com.android.calculator2.calculator
thistime:最後乙個activity啟動耗時
totaltime:所有activity啟動耗時
waittime:ams啟動activity的總耗時
總結:線下使用方便,不能帶到線上
不嚴謹、非精確地時間
關於thistime/totaltime/waittime的區別,下面是其解釋。waittime=endtime-starttime
waittime 就是總的耗時,包括前乙個應用activity pause 的時間和新應用啟動的時間;
thistime 表示一連串啟動activity 的最後乙個 activity 的啟動耗時;
totaltime表示新應用啟動的耗時,包括新程序的啟動和 activity 的啟動,但不包括前乙個應用activity pause 的耗時。
也就是說,開發者一般只要關心 totaltime 即可,這個時間才是自己應用真正啟動的耗時。
總結一下,如果只關心某個應用自身啟動耗時,參考totaltime;
如果關心系統啟動應用耗時,參考waittime;
如果關心應用有介面activity啟動耗時,參考thistime。
1.2、手動打點
啟動時埋點,啟動結束時埋點,二者差值
public class launchtimer
public static void endrecord()
public static void endrecord(string msg)
}避開誤區,採用feed第一條展示
正解:真實資料展示,feed第一條展示(即adapter中的第一條資料)
adb獲取啟動時間
coding utf 8 import subprocess import time thistime是一連串啟動activity的最後乙個activity的啟動耗時。totaltime是新應用啟動的耗時,包括新程序的啟動和activity的啟動,但不包括前乙個應用activity pause的耗時...
App啟動時間分析
1,梳理優化方案 衡量main 函式執行之前的耗時 對於衡量main 之前也就是time1的耗時,蘋果官方提供了一種方法,即在真機除錯的時候,勾選dyld print statistics選項 如果想獲取更詳細的資訊可以使用dyld print statistics details 如下圖 優化方案...
app效能測試 效能測試之APP啟動時間計算
01 明確任務目標 02 實現圖形化介面的操作 件放入指定路徑中,通過命令 ideviceinstaller來實現安裝ipa檔案 ideviceinstaller i ipa檔案 第二步 呼叫instruments工具中的 的資料獲取 launch.tracetemplate d test.trac...