猴子
Monkeyadblogcatlogcat logMonkey日志
monkeymonkey
Monkeypython wxUI
<强> 1. myframewx。帧强>
类MyFrame (wx.Frame):
//设置默认延迟时间值
delayDefault=?”
//设置默认种子数
seedDefault=?000000”
//设置默认执行次数
executionFrequencyDefault=?0000000”
logDir="。/?/p>
def __init__(自我):
//执行方式定义
excuteMode=[“忽略程序崩溃”,
“忽略程序无响应”,
“忽略安全异常”,
"出错中断程序”,
"本地代码导致的崩溃”,
“默认”
]
//日志输出等级区分
logMode=(“简单“,”普通”、“详细”)
executionModeDefault=excuteMode [0]
//初始化菜单按钮
菜单条=wx.MenuBar ()
menu1=wx.Menu (" ")
菜单条。追加(menu1,“文件”)
self.SetMenuBar(菜单条)
//初始化标签栏
天气。StaticText窗口(面板,1,“种子数:”,pos=(xPos yPos))
自我。seedCtrl=天气。TextCtrl(面板,1”“pos=(xPos1 yPos))
//绑定点击事件
self.seedCtrl.Bind (wx。EVT_KILL_FOCUS self.OnAction)
self.seedCtrl.SetFocus ()
//初始化标签栏
天气。StaticText窗口(面板,1,“执行次数:”,pos=(xPos, yPos + yDelta))
//设置窗口位置
自我。excuteNumCtrl=天气。TextCtrl(面板,1”“pos=(xPos1 yPos + yDelta))
//初始化标签栏
天气。StaticText窗口(面板,1,“延时:“,pos=(xPos yPos + 2 * yDelta))
self.delayNumCtrl=wx。TextCtrl(面板,1”“pos=(xPos1 yPos + 2 * yDelta))
//初始化标签栏
天气。StaticText窗口(面板,1,“执行方式:“,pos=(xPos yPos + 3 * yDelta))
//设置窗口位置
自我。excuteModeCtrl=天气。组合框(面板、1”“(xPos1 yPos + 3 * yDelta),选择=excuteMode风格=wx.CB_DROPDOWN)
//设置初始化checklistbox,下拉菜单
自我。checkListBox=天气。CheckListBox(面板1 (xPos yPos + 4 * yDelta), (400、350), [])
天气。StaticText窗口(面板,1,“日志输出等级:“,pos=(xPos yPoslayout-yDelta))
自我。logModeCtrl=天气。组合框(面板,1”、“(xPos1 yPoslayout-yDelta),选择=logMode风格=wx.CB_DROPDOWN)
//初始化按钮,读取程序包按钮绑定readButton事件
自我。readButton=天气。按钮(面板,1,“读取程序包”,pos=(xPos yPoslayout))
self.Bind (wx。EVT_BUTTON,自我。OnReadClick self.readButton)
self.readButton.SetDefault ()
//初始化默认参数按钮,绑定defaultButton事件
self.defaultButton=wx。按钮(面板,1,“默认参数”,pos=(xPos, yPoslayout + yDelta))
self.Bind (wx。EVT_BUTTON,自我。OnResetClick self.defaultButton)
self.defaultButton.SetDefault ()
//初始化一键猴子按钮,按钮绑定快速事件
自我。quickButton=天气。猴子按钮(面板,1,“一键”,pos=(xPos + 120, yPoslayout + yDelta)
self.Bind (wx。EVT_BUTTON,自我。OnQuickStartClick self.quickButton)
self.quickButton.SetDefault ()
<强> 2。日志强>
//生成日志函数
def + log_f +”比;_fatal“+ log_f +”。日志”
os.system (grep_cmd)
//查找异常文件函数
def BuildFatalLog(自我、路径):
self.ListFiles(路径)
<强> 3。强>
//
def OnReadClick(自我、事件):
//清空控件内容
self.checkListBox.Clear ()
//通过读取手机数据/数据目录来确认所有的包名
操作系统。系统(“亚行壳ls数据/数据比;~/log.log”)
//解析日志。日志文件
家=os.path.expanduser (~)
开放(国内+ f="/日志。日志”、“r”)
行=f.readline ()
而行:
行=f.readline ()
如果(行!=" "):
打印”====" +线
//将解析的包名,添加包名复选框中显示
self.checkListBox.Append(线)
f.close ()