欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python學(xué)習(xí)筆記(二)----Python+Pyqt5制作ADB調(diào)試工具

系統(tǒng) 2261 0

一:Python+Pyqt5制作ADB調(diào)試工具

python版本:3.7.3
IDE:PyCharm
其他工具:PyQt5,pywin32,pyInstaller(主要把py文件打包成exe文件)

MainTemplete.py文件如下

            
              import os
import sys
from datetime import datetime

from PyQt5 import QtWidgets

from test import Ui_MainWindow


class MainTemplete(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainTemplete, self).__init__(parent)
        self.setupUi(self)

        self.bind_view_event()

    ##
    # Bind view event
    # ##
    def bind_view_event(self):
        print("========bind_view_event============")
        self.btn_devices.clicked.connect(self.btn_devices_info)
        self.btn_root.clicked.connect(self.btn_root_click)
        self.btn_reboot.clicked.connect(self.btn_reboot_click)
        self.btn_export_log.clicked.connect(self.btn_export_click)
        self.btn_sys_prop.clicked.connect(self.btn_sys_prop_click)

    # 一鍵root
    def btn_root_click(self):
        print("========btn_devices_info============")
        self.show_log("adb root && adb remount")

    # 一鍵重啟
    def btn_reboot_click(self):
        self.show_log("adb reboot")

    # 查看設(shè)備信息
    def btn_devices_info(self):
        print("========btn_devices_info============")
        self.show_log("adb devices")

    # 導(dǎo)出日志
    def btn_export_click(self):
        try:
            os.rmdir("c:/export_log")
            os.mkdir("c:/export_log")
        except:
            Exception("export dir not exists")
        print(self.le_log_export.text())
        self.show_log("adb pull data/local/log " + self.le_log_export.text())

    # 顯示操作記錄
    def show_log(self, cmd):
        self.te_show.append("------------------" + str(datetime.now()) + "-------------------------")
        self.te_show.append(os.popen(cmd).read())

    # 顯示系統(tǒng)屬性
    def btn_sys_prop_click(self):
        self.show_log("adb shell getprop")


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    mainTemplete = MainTemplete()
    mainTemplete.show()
    sys.exit(app.exec_())



            
          

test.py文件如下:

            
              # -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(551, 304)
        MainWindow.setMinimumSize(QtCore.QSize(551, 304))
        MainWindow.setMaximumSize(QtCore.QSize(551, 304))
        MainWindow.setMouseTracking(False)
        MainWindow.setAcceptDrops(False)
        MainWindow.setUnifiedTitleAndToolBarOnMac(False)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.btn_export_log = QtWidgets.QPushButton(self.centralwidget)
        self.btn_export_log.setGeometry(QtCore.QRect(440, 230, 91, 23))
        self.btn_export_log.setObjectName("btn_export_log")
        self.btn_root = QtWidgets.QPushButton(self.centralwidget)
        self.btn_root.setGeometry(QtCore.QRect(10, 260, 91, 23))
        self.btn_root.setObjectName("btn_root")
        self.le_log_export = QtWidgets.QLineEdit(self.centralwidget)
        self.le_log_export.setGeometry(QtCore.QRect(110, 230, 301, 20))
        self.le_log_export.setReadOnly(True)
        self.le_log_export.setObjectName("le_log_export")
        self.btn_devices = QtWidgets.QPushButton(self.centralwidget)
        self.btn_devices.setGeometry(QtCore.QRect(140, 260, 121, 23))
        self.btn_devices.setObjectName("btn_devices")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 230, 91, 16))
        self.label.setObjectName("label")
        self.btn_sys_prop = QtWidgets.QPushButton(self.centralwidget)
        self.btn_sys_prop.setGeometry(QtCore.QRect(300, 260, 101, 23))
        self.btn_sys_prop.setObjectName("btn_sys_prop")
        self.te_show = QtWidgets.QTextEdit(self.centralwidget)
        self.te_show.setGeometry(QtCore.QRect(10, 10, 531, 211))
        self.te_show.setReadOnly(True)
        self.te_show.setObjectName("te_show")
        self.btn_reboot = QtWidgets.QPushButton(self.centralwidget)
        self.btn_reboot.setGeometry(QtCore.QRect(440, 260, 91, 23))
        self.btn_reboot.setObjectName("btn_reboot")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "ADB調(diào)試工具1.0"))
        self.btn_export_log.setText(_translate("MainWindow", "export"))
        self.btn_root.setText(_translate("MainWindow", "一鍵root"))
        self.le_log_export.setText(_translate("MainWindow", "C:\\export_log"))
        self.btn_devices.setText(_translate("MainWindow", "查看設(shè)備信息"))
        self.label.setText(_translate("MainWindow", "Log保存地址:"))
        self.btn_sys_prop.setText(_translate("MainWindow", "查看系統(tǒng)屬性"))
        self.btn_reboot.setText(_translate("MainWindow", "一鍵重啟"))


            
          
二:運(yùn)行效果

本博文只提供一種python制作軟件的基本流程,請(qǐng)自行開發(fā)所需功能。
特別提醒:切勿制作商業(yè)非法軟件。
Python學(xué)習(xí)筆記(二)----Python+Pyqt5制作ADB調(diào)試工具_(dá)第1張圖片


軟件及所需工具下載地址如下:
鏈接:https://pan.baidu.com/s/1DfxooNG_5WKpfcEyX3odWA
提取碼:ret8
github地址:https://github.com/jiaxingLiu/AdbDebugTools



更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 精品国产欧美一区二区 | 亚洲欧美一区二区三区久本道 | 午夜精品老牛av一区二区三区 | 久久精品一区二区三区不卡牛牛 | 亚洲综合国产一区二区三区 | 国产亚洲综合一区在线 | 大伊香蕉在线观看视频 wap | 美剧三体| 黄视频网站在线 | 欧美黑人伦理 | 国产91在线 | 欧美 | 日韩中文字幕网 | 大学生一级毛片全黄真人 | 少妇的肉体的满足毛片 | 91视频官网 | 成人精品鲁一区一区二区 | 久久不射网 | 天天舔天天射天天操 | 日本亚洲精品色婷婷在线影院 | a黄在线观看 | 最新国产网址 | 日韩精品视频免费观看 | 天堂中文网 | 日本肥老太成熟 | 亚洲国产三级 | 国产精品男人的天堂 | 日韩高清免费在线观看 | 日日久| 久久新视频| 国产a精品| 成人午夜18免费看 | 激情小说色| 蜜桃视频在线观看免费视频网站www | 国产精品成人在线 | 香蕉草草久在视频在线播放 | 亚洲精品一区专区 | 亚洲一区二区免费视频 | 理论片午午伦夜理片在线播放 | 天天噜夜夜操 | 九九九热在线精品免费全部 | chinese xxxxhd videos麻豆|