adb獲取啟動時間

2021-08-28 02:43:52 字數 1382 閱讀 4936

# 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獲取系統啟動到現在的秒數,用當前時間減去這...