Я хочу автоматизировать программу, в которой я хочу установить и запустить более 1000 приложений с помощью команды monkeytool, и отслеживать их активность и поведение с помощью команды strace ....
import os
import collections
import csv
import sys
import subprocess
import shutil
import re
def pywalker(path):
for root, dirs, files in os.walk(path):
for file_ in files:
print( os.path.join(root, file_) )
k=os.path.join(root, file_)
o=""'"package: name="'""
os.system("aapt dump badging " +k+ " | FIND "'"package: name="'" "+">E:/Output/Code/data.txt")
os.system("aapt dump badging " +k+ " | FIND "'"launchable-activity"'" "+">> E:/Output/Code/data.txt")
#f=open("data.txt", "r",encoding='utf-8',errors='ignore')
#if f.mode == 'r':
#substring="package"
filepath='E:/Output/Code/data.txt'
with open(filepath,encoding='utf-8',errors='ignore') as fp:
line = fp.readline()
cnt = 1
while line:
if line.find("package")==0:
k="Line {}: {}".format(cnt, line.strip())
#k="Line {}: {}".format(contents.strip())
i=k.find('=')
j=k.find('versionCode')
#print(i)
d=k[i+2:j-2]
packageName1=d
packageName=d
else:
k="Line {}: {}".format(cnt, line.strip())
#k="Line {}: {}".format(contents.strip())
i=k.find('=')
j=k.find('label=')
#print(i)
d=k[i+2:j-3]
#print(d)
test=d.replace(packageName,'')
activity=test
line = fp.readline()
cnt += 1
fp.close()
print(packageName)
begin=packageName+"/"+activity
print(begin)
#os.system("adb install -r " +k)
os.system("adb shell am start -n "+begin)
os.system("adb shell ps |FIND "+'"'+packageName1+'"'+" > E:/Output/Code/pid.txt")
filepath='E:/Output/Code/pid.txt'
huge_list = []
with open(filepath,encoding='utf-8',errors='ignore') as fp:
for line in fp:
huge_list.extend(line.split())
pid=huge_list[1]
print(pid)
#if(pid):
print(packageName1)
#os.system("adb shell ps |FIND "+'"'+packageName1+'"')
#"adb shell monkey -p "+packageName1+ " -v 50")
os.system("adb shell monkey -p "+packageName1+" -v 1000 --throttle 100 --pct-appswitch 10 --ignore-crashes --pct-syskeys 0 && adb shell am force-stop "+pid+" && adb shell strace -c -p "+pid +" > "+pid+".txt")
#os.system("adb shell kill "+pid)
if __name__ == '__main__':
pywalker('E:/Test')