# coding:utf-8
import subprocess
import time
'''thistime是一連串啟動activity的最後乙個activity的啟動耗時。
totaltime是新應用啟動的耗時,包括新程序的啟動和activity的啟動,但不包括前乙個應用activity pause的耗時
waittime是總的耗時,包括前乙個應用activity pause的時間和新應用啟動的時間,
如果關心應用有介面activity啟動耗時,參考thistime;
如果只關心某個應用自身啟動耗時,參考totaltime;我們需要關注的也是這個時間
如果關心系統啟動應用耗時,參考waittime;
adb shell am start -w com.android.settings/.component.main.activity.mainactivity
'''#要測試的包
package_name='com.android.settings'
#要測試的activity
activity_name='.component.main.activity.mainactivity'
#執行的命令
cmd='adb shell am start -w '+package_name+'/'+activity_name+' | find "totaltime"'
proc=subprocess.popen(cmd,stdout=subprocess.pipe,stderr=subprocess.stdout,shell=true)
# print(result)
result=proc.communicate()[0].split('\n')
start_time=''
#從列印結果來看,最後乙個是空字串,所以刪除
result.pop()
# print(result)
stime=result[0]
#如果totaltime在結果裡
if 'totaltime' in stime:
#結果格式為:totaltime: ***x,從結果第11位開始拼接數字
for char in stime[11:]:
#如果是數字就拼接,不是就跳出
if char.isdigit():
start_time=start_time+char
else:
break
else:
print(u'沒有找到totaltime')
if start_time=='':
print(u'獲取啟動時間失敗')
else:
print(start_time)
APP 啟動時間測試 adb命令
1 概念 冷啟動 當啟動應用時,後台沒有該應用的程序,這時系統會重新建立乙個新的程序分配給該應用,這個啟動方式就是冷啟動。熱啟動 當啟動應用時,後台已有該應用的程序 例 按back鍵 home鍵,應用雖然會退出,但是該應用的程序是依然會保留在後台,可進入任務列表檢視 所以在已有進 程的情況下,這種啟...
iOS 獲取APP pre main 啟動時間
熱啟動 冷啟動 在xcode 選單 product scheme edit scheme environment variables 設定 key dyld print statistics value 1 結果為 total pre main time 1.4 seconds 100.0 dyli...
linux獲取系統啟動時間
1 前言 2 sysinfo結構 sysinfo結構保持了系統啟動後的資訊,主要包括啟動到現在的時間,可用記憶體空間 共享記憶體空間 程序的數目等。man sysinfo得到結果如下所示 struct sysinfo 3 獲取系統啟動時間 通過sysinfo獲取系統啟動到現在的秒數,用當前時間減去這...