-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall_auto.py
More file actions
155 lines (127 loc) · 4.11 KB
/
Copy pathinstall_auto.py
File metadata and controls
155 lines (127 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#coding=utf-8
#adb install Babe.apk
#aapt dump badging Babe.apk | findstr "package"
import os
import time
def getCmdEexcuteResult(cmd):
tmp = os.popen(cmd).readlines()
return tmp
def getPackageName(installName):
cmd='aapt dump badging "%s" | findstr "package"'%installName
print cmd
str= getCmdEexcuteResult(cmd)[0].split(" ")[1]
return str[6:-1]
def getPackageNameInfo(packageName):
cmd='adb shell dumpsys package %s'%packageName
print cmd
exeResutl= getCmdEexcuteResult(cmd)[3]
return exeResutl
def getPackageNameInfo(packageName):
cmd='adb shell dumpsys package %s'%packageName
print cmd
exeResut= getCmdEexcuteResult(cmd)
#print exeResut
for index,val in enumerate(exeResut):
#print index ,val
if val.strip("\r\n").strip()=='Action: "android.intent.action.MAIN"':
return exeResut[index-1].strip().split(" ")[1]
def startApk(packageName):
try:
packagename_mainActivity = getPackageNameInfo(packageName)
except:
print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
packagename_mainActivity = packageName + "/"
print packagename_mainActivity
cmd = "adb shell am start %s"%packagename_mainActivity
print getCmdEexcuteResult(cmd)
def installApk(name):
cmd='adb install -r "%s"'%name
os.system(cmd)
def uninstallApk(packageName):
cmd="adb uninstall %s"%packageName
print getCmdEexcuteResult(cmd)
def writeFile(fileName,data):
f=open(fileName,'a+')
f.write(data+"\r\n")
f.close
def outputLog(cmd,fileName,index):
writeFile(fileName,"#########%d bigin#########\r\n"%index)
exeResult=getCmdEexcuteResult(cmd)
writeFile(fileName,"\r\n".join(exeResult))
writeFile(fileName,"#########%d end#########\r\n"%index)
def meminfoLog(fileName,index):
cmd='adb shell dumpsys meminfo'
outputLog(cmd,fileName,index)
def cpuinfoLog(fileName,index):
cmd='adb shell dumpsys cpuinfo'
outputLog(cmd,"fileName",index)
def rank(apkNameList,index):
packageNameList=[]
print "the %dth"%index
#安装10apk
for apkName in apkNameList:
print "%s installing"%apkName
print "%s install " % apkName ,
installApk(apkName)
writeFile("apkInstalled.log",apkName)
writeFile("apkInstalled.log", "************************")
# 获取包名和主界面名
for apkName in apkNameList:
packageName = getPackageName(apkName)
print packageName
writeFile("apkInstalledPackageName.log",packageName)
packageNameList.append(packageName)
packageNameListALL.append(packageName)
writeFile("apkInstalledPackageName.log", "************************")
print "loging..."
i = 1
while i <= 5:
meminfoLog("noStartApkMeminfo_%d.txt"%index, i)
cpuinfoLog("noStartApkCPUinfo_%d.txt" % index, i)
if i == 5:
break
time.sleep(60) # 休眠60秒
i += 1
print "log all done"
print "start Apk"
# 启动应用
for packageName in packageNameList:
startApk(packageName)
print "loging..."
i = 1
while i <= 5:
meminfoLog("startApkMeminfo_%d.txt"%index, i)
cpuinfoLog("startApkCPUinfo_%d.txt" % index, i)
if i == 5:
break
time.sleep(60) # 休眠60秒
i += 1
print "log all done"
print "all done"
def doWork():
apkNameList=[]
apkNameList10N=[]
s = os.sep
root = os.getcwd()
count = 0
for i in os.listdir(root):
if os.path.isfile(os.path.join(root, i)):
if i[-4:] == '.apk':
count+=1
apkName = i
apkNameList10N.append(apkName)
if count==10:
apkNameList.append(apkNameList10N)
apkNameList10N=[]
count=0
index=1
for apkNameList10N in apkNameList:
rank(apkNameList10N,index)
index += 1
if __name__=="__main__":
packageNameListALL = []
doWork()
console=raw_input("delete all apk,enter y")
if console=='y':
for packageName in packageNameListALL:
uninstallApk(packageName)