一、使用到的adb命令
adb shell logcat | grep START
adb shell am start -W -n package/active
adb shell am force-stop package
adb shell input keyevent3
二、思路
1、获取包名active名
2、杀死/退出APP进程
3、启动app记录时间
命令执行层:定义3个函数,保存命令
逻辑执行层:控制逻辑执行
数据保存层:保存数据
三、
测试时出现的问题:APP无法启动,报错权限限制,请找开发解决,正常APP不会出现此情况,百度说active调用出了问题,开发打了新包解决了此问题
四、代码
#coding=utf-8 import time import os,csv class start(): def __init__(self,apk_package,counts,type=1): self.apk_package=apk_package self.counts=counts self.type=type self.time = [("time,start_time"),] def start(self): #冷启动 self.start_data=os.popen('adb shell am start -W -n %s'%self.apk_package) def stop_app(self): #关闭APP os.system('adb shell am force-stop %s'%self.apk_package.split("/")[0]) def quit_app(self): #返回桌面 os.system('abd shell input keyevent3') def run(self): #运行逻辑 for i in range(self.counts): if i<self.counts and self.type==1 : self.stop_app() time.sleep(1) self.start() for j in self.start_data: if 'ThisTime' in j: t=j.split(":")[1] d = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) self.time.append((d, t)) break elif i<self.counts and self.type==2 : self.quit_app() time.sleep(1) self.start() for j in self.start_data: if 'ThisTime' in j: t = j.split(":")[1] d = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) self.time.append((d, t)) break def save_csv(self): #保存CSV文件 with open('../CSV/app_start.csv', 'w', newline='') as f: for i in self.time: i=str(i) f.write("\n"+i) if __name__=="__main__": start =start('com.duowan.kiwi/.homepage.Homepage',5) start.run() start.save_csv()