打开市面上常用apk冷热启动脚本_com.tencent.mtt.mainactivity-程序员宅基地

技术标签: android  

#!/usr/bin/python

-- coding: UTF-8 --

autor:JoeNero

date :2020-12-10

import csv
import os
import time

cmdOk =‘is Ok!’

apkAct =(
“com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity”, #qq
“com.tencent.mm/com.tencent.mm.ui.LauncherUI”, #wechat
“com.sina.weibo/com.sina.weibo.VisitorMainTabActivity”, #微博
“com.ss.android.ugc.aweme/com.ss.android.ugc.aweme.splash.SplashActivity”, #抖音
“com.qiyi.video/com.qiyi.video.WelcomeActivity”, #爱奇艺
“com.ss.android.article.news/com.ss.android.article.news.activity.MainActivity”, #今日头条
“com.happyelements.AndroidAnimal/com.happyelements.hellolua.MainActivity”, #开心消消乐
“com.ss.android.article.video/com.ss.android.article.video.activity.SplashActivity”,#西瓜视频
“com.taobao.taobao/com.taobao.tao.welcome.Welcome”, #淘宝
“com.baidu.searchbox/com.baidu.searchbox.MainActivity”, #百度
“com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin”, #支付宝
“com.tencent.karaoke/com.tencent.karaoke.module.splash.ui.SplashBaseActivity”, #全民k歌
“com.snda.wifilocating/com.lantern.launcher.ui.MainActivity”, #Wifi万能钥匙
“com.lechuan.midunovel/com.lechuan.midunovel.ui.activity.WelcomeActivity”, #米读小说
“com.sdu.didi.psnger/com.didi.sdk.app.MainActivity”, #滴滴出行
“com.tencent.qqmusic/com.tencent.qqmusic.activity.AppStarterActivity”, #QQ音乐
“com.autonavi.minimap/com.autonavi.map.activity.NewMapActivity”, #高德地图
“com.baidu.homework/com.baidu.homework.activity.index.IndexActivity”, #作业帮
“com.sankuai.meituan/com.meituan.android.pt.homepage.activity.MainActivity”, #美团
“cn.xuexi.android/com.alibaba.android.rimet.biz.SplashActivity”, #学习强国
“com.smile.gifmaker/com.yxcorp.gifshow.HomeActivity”, #快手
“com.ss.android.ugc.livelite/com.ss.android.ugc.live.main.MainActivity”, #火山小视频
“com.tencent.qqlive/com.tencent.qqlive.ona.activity.SplashHomeActivity”, #腾讯视频
“com.youku.phone/com.youku.v2.HomePageEntry”, #优酷
“com.jifen.qukan/com.jifen.qkbase.main.MainActivity”, #趣头条
“com.tencent.news/com.tencent.news.activity.SplashActivity”, #腾讯新闻
“com.qqgame.hlddz/com.qqgame.hlddz.NewHLDDZ”, #欢乐斗地主
“com.baidu.haokan/com.baidu.haokan.app.activity.HomeActivity”, #好看视频
“com.kingkr.keqiaoling/com.bslyun.app.activity.MainActivity”, #咸鱼
“com.tencent.mtt/com.tencent.mtt.MainActivity”, #QQ浏览器
“com.UCMobile/com.uc.browser.InnerUCMobile”, #uc浏览器
“com.chinamworld.main/com.ccb.start.MainActivity”, #中国建设银行
“com.tencent.qqpimsecure/com.tencent.server.fore.QuickLoadActivity”, #腾讯手机管家
“com.baidu.BaiduMap/com.baidu.baidumaps.MapsActivity”, #百度地图
“com.tencent.tmgp.sgame/com.tencent.tmgp.sgame.SGameActivity”, #王者荣耀
“com.tencent.tmgp.pubgmhd/com.epicgames.ue4.SplashActivity”, #和平精英
)
#apk包名
apk=(
“com.tencent.mobileqq”, #qq
“com.tencent.mm”, #wechat
“com.sina.weibo”, #微博
“com.ss.android.ugc.aweme”, #抖音
“com.qiyi.video”, #爱奇艺
“com.ss.android.article.news”, #今日头条
“com.happyelements.AndroidAnimal”, #开心消消乐
“com.ss.android.article.video”, #西瓜视频
“com.taobao.taobao”, #淘宝
“com.baidu.searchbox”, #百度
“com.eg.android.AlipayGphone”, #支付宝
“com.tencent.karaoke”, #全民k歌
“com.snda.wifilocating”, #Wifi万能钥匙
“com.lechuan.midunovel”, #米读小说
“com.sdu.didi.psnger”, #滴滴出行
“com.tencent.qqmusic”, #QQ音乐
“com.autonavi.minimap”, #高德地图
“com.baidu.homework”, #作业帮
“com.sankuai.meituan”, #美团
“cn.xuexi.android”, #学习强国
“com.smile.gifmaker”, #快手
“com.ss.android.ugc.livelite”, #火山小视频
“com.tencent.qqlive”, #腾讯视频
“com.youku.phone”, #优酷
“com.jifen.qukan”, #趣头条
“com.tencent.news”, #腾讯新闻
“com.qqgame.hlddz”, #欢乐斗地主
“com.baidu.haokan”, #好看视频
“com.kingkr.keqiaoling”, #咸鱼
“com.tencent.mtt”, #QQ浏览器
“com.UCMobile”, #uc浏览器
“com.chinamworld.main”, #中国建设银行
“com.tencent.qqpimsecure”, #腾讯手机管家
“com.baidu.BaiduMap”, #百度地图
“com.tencent.tmgp.sgame”, #王者荣耀
“com.tencent.tmgp.pubgmhd”, #和平精英
)
#apk的名字
apkName=(
‘QQ’,
‘wechat’,
‘微博’,
‘抖音’,
‘爱奇艺’,
‘今日头条’,
‘开心消消乐’,
‘西瓜视频’,
‘淘宝’,
‘百度’,
‘支付宝’,
‘全民K歌’,
‘wifi万能钥匙’,
‘米读小说’,
‘滴滴出行’,
‘QQ音乐’,
‘高德地图’,
‘作业帮’,
‘美团’,
‘学习强国’,
‘快手’,
‘火山小视频’,
‘腾讯视频’,
‘优酷’,
‘趣头条’,
‘腾讯新闻’,
‘欢乐斗地主’,
‘好看视频’,
‘咸鱼’,
‘QQ浏览器’,
‘UC浏览器’,
‘中国建设银行’,
‘腾讯手机管家’,
‘百度地图’,
‘王者荣耀’,
‘和平精英’,
)

class App(object):
def init(self):
self.content = “”
self.startTime = 0

# 启动App
def LaunchApp(self,i):
    cmd = 'adb shell am start -W -n '+apkAct[i]
    self.content = os.popen(cmd)

# 热启动停止App
def HotStopApp(self):
    cmd = 'adb shell input keyevent 3'
    os.popen(cmd)

# 冷启动停止App
def ClodStopApp(self):
    cmd = 'adb shell am force-stop '+apk[i]
    os.popen(cmd)

# 获取启动时间
def GetLaunchedTime(self):
    #print(self.content.readlines())
    for line in self.content.readlines():
        if "TotalTime" in line:
            self.startTime = line.split(":")[1]
            break
    return self.startTime

控制类

class Controller(object):
def init(self, count):
self.app = App()
self.counter = count
self.alldata = [(“timestamp”, “elapsedtime”)]

# 单次启动测试过程
def Testprocess(self,i,flag):
    self.app.LaunchApp(i)
    # time.sleep(5)
    time.sleep(5)
    elpasedtime = self.app.GetLaunchedTime()
    if flag == 1:
        self.app.ClodStopApp()#标记冷启动
    elif flag == 0:
        self.app.HotStopApp()#标记热启动
    else:
        print("冷热启动标识符错误 erro")
    # time.sleep(2)
    time.sleep(2)
    currenttime = self.getCurrentTime()
    self.alldata.append((currenttime, elpasedtime))

# 多次执行测试过程
def Run(self,i,flag):
    while self.counter > 0:
        self.Testprocess(i,flag)
        self.counter = self.counter - 1

# 获取当前的时间戳ms级
# def getCurrentTime(slef):
#     ct = time.time()
#     local_time = time.localtime(ct)
#     data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
#     data_secs = (ct - int(ct)) * 1000
#     time_stamp = "%s.%03d" % (data_head, data_secs)
#     #print(time_stamp)
#     return time_stamp

# 获取当前的时间戳S级
def getCurrentTime(self):
    currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    return currentTime

# 数据的存储
def SaveDataToCSV(self,fileName):
    csvfile = file(fileName, 'wb')
    writer = csv.writer(csvfile)
    writer.writerows(self.alldata)
    csvfile.close()

#中位数
def median(data):
    data.sort()
    half = len(data) // 2
    return (data[half] + data[~half])/2

def 

if name == “main”:
# os.system(“echo 热启动开始”)
# i = 3
# print(apkName[i])
# time.sleep(2)
# controller = Controller(5)
# controller.Run(i,0)
# controller.SaveDataToCSV(‘热启动时间’+apkName[i]+‘.csv’)
# os.system("echo "+apkName[i]+cmdOk)
print(“冷启动开始”)
tick1 = time.time()
# print(“测试开始的时间为:%.2f秒”%tick1)
# os.system(“echo 冷启动开始”)
for i in range(0,35):
time.sleep(2)
controller = Controller(5)
controller.Run(i,1)
controller.SaveDataToCSV(apkName[i]+‘_冷启动时间’+‘.csv’)
os.system("echo "+apkName[i]+cmdOk)
tick2 = time.time()
# print(“测试结束的时间为:%.2f秒”%tick2)
print (“测试时间为:%.2f秒”%(tick2-tick1))

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38753749/article/details/136710799

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法