# -*- coding: utf-8 -*-
import subprocess
import time
import re
import sys
package_name = 'com.nfdaily.nfplus'
launch_activity = '.ui.activity.SplashActivity'
#执行命令函数
def excuteCommand(com):
ex = subprocess.Popen(com, stdout=subprocess.PIPE, shell=True)
out, err = ex.communicate()
status = ex.wait()
return out.decode()
# 退出app
def app_stop(package_name):
cmd_stop = "adb shell am force-stop %s" % (package_name)
excuteCommand(cmd_stop)
time.sleep(5)
#获取冷启动时间
def get_cold_boot_time(package_name, launch_activity):
adb_command = 'adb shell "am start -W %s | grep Time"' % (package_name + "/" + launch_activity)
adb_output = excuteCommand(adb_command)
print(adb_output)
match_obj = re.match( r'ThisTime:(.*)', adb_output, re.M|re.I)
str_time = ''
if match_obj:
str_time = match_obj.group(1)
else:
match_obj = re.match( r'TotalTime:(.*)', adb_output, re.M|re.I)
if match_obj:
str_time = match_obj.group(1)
else:
return -1
return int(str_time.strip())
# 执行测试,times为次数,结果取平均值
def run_test(times):
cold_time = []
for i in range(times):
start_time = get_cold_boot_time(package_name, launch_activity)
if start_time <= 0:
print("start time invalid = " + str(start_time) + ' ms')
continue
cold_time.append(start_time)
time.sleep(5)
app_stop(package_name)
res_cold_time = 0
print("cold_time = " + str(cold_time))
for i in cold_time:
res_cold_time = res_cold_time + i
print('average cold_time: ' + str(res_cold_time / times) + ' ms')
if __name__ == '__main__':
run_time = 10
if len(sys.argv) > 1:
run_time = sys.argv[1]
run_test(int(run_time))
应用启动速度测试脚本
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。