獲取啓動時間步驟:python
一、設置sdk+python環境android
二、爲了獲取App的包(package)名,在cmd輸入adb logcat | grep START啓動監控指令shell
三、打開App,在cmd查看新增的記錄中尋找cmp="com.xxxxx"/.xxxx.xxxActivity,引號裏是包名app
四、輸入啓動App命令adb shell am start -W -n package/activity,ThisTime的值就是啓動時間測試
五、輸入中止App命令adb shell am force-stop package(注意:沒有activity),這時App退出——冷啓動spa
#五、輸入退到後臺命令adb shell input keyevent 3,至關於Back或Home鍵暫停App(退到後臺)——熱啓動code
六、重複10次,取除了第1個的時間以外的9個值取平均值作圖表分析blog
腳本以下:utf-8
1 #encoding:utf-8 2 import os 3 import time 4 import csv 5 6 #App類 7 class App(object): 8 def __init__(self): 9 self.content = "" 10 self.startTime="" 11 #啓動App 12 def LaunchApp(self): 13 cmd = "adb shell am start -W -n com.android.browser/.BrowserActivity" 14 self.content = os.popen(cmd) 15 #中止App 16 def StopApp(self): 17 cmd = "adb shell am force-stop com.android.browser" 18 os.popen(cmd) 19 #獲取啓動時間 20 def GetLaunchedTime(self): 21 for line in self.content.readlines(): 22 if "ThisTime" in line: 23 self.startTime = line.split(":")[1] 24 break 25 return self.startTime 26 27 #控制類 28 class Controller(object): 29 def __init__(self,count): 30 self.app = App() 31 self.counter = count 32 self.alldata = [("timestamp","elapsedtime")] 33 34 #單次測試過程 35 def testprocess(self): 36 self.app.LaunchApp() 37 time.sleep(5) 38 elapsedtime = self.app.GetLaunchedTime() 39 self.app.StopApp() 40 currenttime = self.getCurrentTime() 41 time.sleep(3) 42 self.alldata.append((currenttime,elapsedtime)) 43 44 #屢次執行測試過程 45 def run(self): 46 while self.counter > 0: 47 self.testprocess() 48 self.counter = self.counter - 1 49 50 #獲取執行的當前時間 51 def getCurrentTime(self): 52 currentTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) 53 return currentTime 54 55 #數據的存儲 56 def SaveDataToCSV(self): 57 csvfile = open("startTime1.csv","w") 58 writer = csv.writer(csvfile) 59 writer.writerows(self.alldata) 60 csvfile.close() 61 62 if __name__ == "__main__": 63 controller = Controller(10) 64 controller.run() 65 controller.SaveDataToCSV()