• Python+wx++adb实现对Android的小工具


    最近在测试app的时候经常要查看Android设备的基本信息,app的相关信息和重复性操作

    使用adb可以直接使用命令操作,但是不太方便,我用Python的wx做了一个exe的小工具,方便在window下运行

    1.代码如下

    import wx,os
    import datetime
    import time
    app = wx.App()
    win = wx.Frame(None,title = "测试小工具", size=(800,400))
    win.Show()

    #获取设备信息的方法,使用os.popen是因为有返回,os.system没有
    def huoqu(event):
    cmd1 = "adb shell top -n 1 | findstr /i user"
    cmd2 = "adb shell cat /proc/meminfo |findstr MemTotal"
    cmd3 = "adb shell cat /proc/meminfo |findstr MemFree"
    cmd4 = "adb shell dumpsys battery |findstr level"
    cmd5 = "adb shell getprop ro.build.version.release"
    cmd6 = "adb shell dumpsys window w |findstr / |findstr name="

    file1 = os.popen(cmd1)
    file2 = os.popen(cmd2)
    file3 = os.popen(cmd3)
    file4 = os.popen(cmd4)
    file5 = os.popen(cmd5)
    file6 = os.popen(cmd6)

    power1 = file1.read()
    power2 = file2.read()
    power3 = file3.read()
    power4 = file4.read()
    power5 = file5.read()
    power6 = file6.read()

    contents.SetValue('cpu信息'+power1+'总内存'+power2+'剩余内存'+power3+'电量'+power4+'Android系统版本'+power5+'当前启动App的应用名和包名'+power6)

    #截屏
    def jieping(event):
    t = datetime.datetime.now()
    v = str(t.year)+'_'+str(t.month)+'_'+str(t.day)+'_'+str(t.hour)+'_'+str(t.minute)+'_'+str(t.second)
    screen_name = v+'.png'
    print(screen_name)
    os.system('adb shell screencap -p /sdcard/%s' % (screen_name))
    os.system('adb pull /sdcard/%s ./'% (screen_name))
    os.system('adb shell rm /sdcard/%s'% (screen_name))


    #重启
    def chongqi(event):
    for i in range(int(cishuContnts.GetValue())):
    time.sleep(60)
    cmd10 = "adb reboot"
    os.system(cmd10)

    #拍照
    def paizhao(event):
    for i in range(10):
    cmd11 = "adb shell input keyevent 4"
    os.system(cmd11)
    time.sleep(2)
    cmd12 = "adb shell input tap 0 200"
    os.system(cmd12)
    time.sleep(5)


    huoquButton = wx.Button(win, label = '获取设备信息',pos = (5,5),size = (80,25))
    huoquButton.Bind(wx.EVT_BUTTON, huoqu)
    jiepingButton = wx.Button(win, label = '截屏',pos = (100,5),size = (80,25))
    jiepingButton.Bind(wx.EVT_BUTTON,jieping)
    chongqiButton = wx.Button(win, label = '重启,过程中不能操作,间隔时间60s,次数:',pos = (190,5),size = (250,25))
    chongqiButton.Bind(wx.EVT_BUTTON,chongqi)
    cishuContnts = wx.TextCtrl(win, pos = (445,5),size = (30,25))
    paizhaoButton = wx.Button(win, label = '连续拍照10次',pos = (480,5),size = (100,25))
    paizhaoButton.Bind(wx.EVT_BUTTON,paizhao)
    yuansuButton = wx.Button(win, label = '主界面_fsl',pos = (590,5),size = (100,25))
    versionButton = wx.Button(win, label = 'app的版本',pos = (695,5),size = (80,25))
    chongqiButton.Bind(wx.EVT_BUTTON,chongqi)

    contents = wx.TextCtrl(win, pos = (5,35),size = (800,400), style = wx.TE_MULTILINE | wx.HSCROLL)


    app.MainLoop()

    2.使用pycharm的Terminal下命令打包成exe(前面讲过)

    3.双击exe即可运行。注意要安装adb工具,并配置环境变量




  • 相关阅读:
    学习精神
    C语言输入、输出格式控制
    C语言输入、输出格式控制
    关于打开VC6.0开发文件出错文件问题
    关于打开VC6.0开发文件出错文件问题
    FormStartPosition 枚举
    FormStartPosition 枚举
    判断文本框输入是否为汉字
    判断文本框输入是否为汉字
    POJ——T 1422 Air Raid
  • 原文地址:https://www.cnblogs.com/lhm-test/p/11217143.html
Copyright © 2020-2023  润新知