标签:name format APP 冷启动 测试 time line data
冷启动耗时:
即后台没有该应用的进程(我们使用am force-stop命令结束app运行),打开软件,直到进入到首页activity页面,并计算耗时。
示例代码:
import os import time # 测试冷启动时间 # 创建App进程, 加载相关资源, 启动Main Thread, 初始化首屏Activity def startUpTime(pg_name, pga_name): """ :param device: 设备id :param pg_name: activity名称 :param pga_name: 包名 """ wait_time = 5 try: with open('F:/report/coldStartUp.txt', 'wb+') as file: su_time = [] for i in range(30): os.popen("adb shell am force-stop {}".format(pg_name)) # kill 进程 time.sleep(wait_time) # 启动activity start = os.popen("adb shell am start -W {}".format(pga_name)) time.sleep(wait_time) data = start.readlines() for line in data: if "TotalTime:" in line: line = line.strip() print("第{}次TotalTime为: {}ms".format(i+1,line[11:])) if int(line[11:]) == 0: break su_time.append(int(line[11:])) file.write(('第{}次\n'.format(i + 1)).encode()) line += '\n' line = line.encode() file.write(line) return su_time except os.error as error: print(error) def getDev(): """ :return: 获得设备id """ try: devices_info = os.popen('adb devices') data = devices_info.readlines() if len(data) != 0 and data[1].find('device'): s = data[1][:-7] return s return 0 except Exception as error: print(error) def main_cold(): # 取测试机-s s = getDev() pn = 'sg.partying.ghost.android' an = 'sg.partying.ghost.android/com.bb.infinity.InfiActivity' # aapt dump badging + apk print('设备:{},APP包名:{}, activity:{}\n冷启动测试开始...'.format(s,pn, an)) time_list = startUpTime(pn, an) total_time = 0 for i in time_list: total_time += i avg_time = total_time / len(time_list) print('冷启动平均耗时: {}ms'.format(avg_time)) with open('F:/report/coldStartUp.txt', 'ab+')as f: f.write(('\n设备{}平均冷启动耗时:{}ms'.format(s,avg_time)).encode()) if __name__ == '__main__': main_cold()
标签:name,format,APP,冷启动,测试,time,line,data 来源: https://www.cnblogs.com/muxiaomu/p/16689254.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。