# pysideAdbTerimal **Repository Path**: qinganan_admin/pyside-adb-terimal ## Basic Information - **Project Name**: pysideAdbTerimal - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # adbRun 一个面向 Windows 的 ADB 图形终端工具,提供实时终端、设备侧边栏、快捷指令管理、批量执行、参数化指令和在线更新配置能力,适合日常调试、测试联调和常用命令沉淀。 ## 功能特点 - 实时终端:直接在界面里执行 `adb`、`scrcpy`、`dir`、`cls` 等常用命令。 - 设备侧边栏:集中展示 ADB 状态、连接设备和基础上下文信息,并支持收起展开。 - 快捷指令:支持分组管理、右键操作、双击发送、批量勾选顺序执行。 - 指令搜索:支持按名称、描述、命令内容和参数关键字快速筛选。 - 参数化指令:发送前弹窗填写参数,适合 APK 安装、包名切换、文件路径输入等场景。 - 在线更新配置:支持导入本地 JSON 配置、导出当前配置到指定位置。 - 会话日志:终端执行过程会写入 `logs/`,方便回溯问题。 ## 适用场景 - Android 设备调试 - 测试常用命令模板沉淀 - 批量执行固定命令序列 - 团队内部统一 ADB 操作入口 ## 快速开始 ### 1. 准备环境 - Windows - Python 3 - 已安装 `PySide6` - 已安装 ADB,并确保 `adb` 可在命令行中直接使用 首次运行如果提示缺少依赖,可以先安装: ```powershell pip install PySide6 ``` ### 2. 启动项目 如果你使用虚拟环境: ```powershell .\.venv\Scripts\python.exe .\main.py ``` 如果你使用系统 Python: ```powershell python .\main.py ``` ## 界面说明 ### 左侧设备栏 - 展示当前 ADB 状态和设备信息 - 支持收起,不影响终端和快捷指令使用 ### 中间终端区 - 输入命令后直接执行 - 支持查看输出、执行状态和日志记录 ### 右侧快捷指令栏 - 支持按分组展示快捷指令 - 支持右键新增、编辑、复制、删除 - 支持勾选多条指令后顺序执行 - 顶部支持搜索,输入框右侧显示当前可见指令条数 ## 快捷指令使用 ### 新增指令 在快捷指令栏中右键空白区域或分组,即可新建分组或添加指令。 每条指令支持以下信息: - 指令名称 - 描述说明 - 所属分组 - 发送间隔 - 命令内容 ### 多行命令 命令内容按“每行一条命令”处理,例如: ```text adb kill-server adb start-server adb devices -l ``` ### 批量执行 - 勾选多条指令后,点击“执行勾选项” - 系统会按显示顺序依次发送命令 - 每条指令都会使用自己配置的发送间隔 ## 参数化快捷指令 快捷指令支持在命令中直接写参数占位符。 ### 支持写法 ```text {{name}} {{name|提示}} {{name|提示|默认值}} ``` ### 示例 安装 APK: ```text adb install -r {{apk_path|请选择 APK 文件}} ``` 清空应用数据: ```text adb shell pm clear {{package_name|请输入包名|com.example.demo}} ``` 拉取文件: ```text adb pull {{remote_path|设备文件路径|/sdcard/test.txt}} {{local_path|本地保存路径}} ``` ### 执行效果 - 当指令中包含占位符时,发送前会弹出参数输入窗口 - 确认后再替换成真实命令发送 - 搜索框也可以搜索参数名、提示词和默认值 ## 搜索说明 快捷指令顶部搜索框支持检索以下内容: - 指令名称 - 描述说明 - 命令内容 - 参数名 - 参数提示词 - 参数默认值 支持多个关键字空格分隔搜索。 ## 在线更新配置 点击顶部“配置更新”或“检查更新”按钮,可以打开更新配置窗口。 当前只保留两个功能: - 导入配置:从本地选择 JSON 文件并立即应用当前更新设置 - 导出配置:将当前更新设置导出为 JSON 文件,便于备份或在其他环境复用 配置文件内容包含以下字段: - `manifest_url` - `request_timeout_sec` - `download_dir` ## 日志 运行日志默认保存在: ```text logs/ ``` 适合用于: - 排查执行失败 - 回看终端历史输出 - 记录一次会话中的命令操作 ## 项目结构 ```text main.py terminal_app/ app_meta.py window.py window_quick_commands.py window_components.py window_updates.py updater.py quick_commands.json logs/ ``` ## 打包与发布 当前仓库已经内置一套可复用的打包脚本: - `build_release.py` - `build_release.toml` - `build_release.cmd` - `build_installer.ps1` ### 推荐用法 日常打包推荐直接运行: ```bat build_release.cmd ``` 如果希望打包后顺手做一次离屏启动校验,可以运行: ```bat build_release.cmd --verify-startup ``` 如果你只想生成 `dist/`,不生成安装包: ```bat build_release.cmd --skip-installer ``` 如果你更习惯 PowerShell,也可以继续使用兼容入口: ```powershell powershell -ExecutionPolicy Bypass -File .\build_installer.ps1 -VerifyStartup ``` ### 配置文件说明 打包逻辑的项目相关配置集中放在 `build_release.toml` 中。 - `[project]` 作用:定义 Python 解释器、`.spec` 文件、安装包脚本、输出目录和源码扫描目录。 - `[app]` 作用:直接填写应用名和版本号。 - `[metadata]` 作用:如果项目里已经有统一的元数据模块,可以从代码中读取应用名和版本号,避免重复维护。 - `[qt]` 作用:定义 Qt 运行库所在目录、翻译文件目录、保留语言,以及自动瘦身规则。 - `[[qt.trim_rules]]` 作用:声明“哪些 Qt 模块没被源码使用时,可以删除哪些运行库文件”。 ### 自动瘦身规则 脚本在 PyInstaller 完成后,会自动扫描 `source_paths` 中的 Python 文件,识别项目实际导入的 Qt 模块,再按 `build_release.toml` 中的 `qt.trim_rules` 删除明显未使用的 Qt 运行库。 当前这套规则主要针对 `PySide6` 项目,默认会做这些事情: - 删除未使用的 `QtPdf` - 删除未使用的 `QtQuick / QML` - 删除未使用的 `VirtualKeyboard` - 只保留 `qt_en / qtbase_en / qt_zh_CN / qtbase_zh_CN` 这些翻译文件 如果你的项目不是 Qt 项目,可以把 `build_release.toml` 中 `[qt]` 的 `binding` 和 `runtime_root` 留空,脚本就只负责构建,不做 Qt 瘦身。 ### 迁移到其他项目 如果你要把这套脚本复制到别的仓库,通常只需要: 1. 复制 `build_release.py`、`build_release.toml`、`build_release.cmd` 2. 修改 `build_release.toml` 里的 `[project]` 3. 根据项目实际情况修改 `[app]` 或 `[metadata]` 4. 如果目标项目也是 PySide6,再按需调整 `[qt]` 和 `[[qt.trim_rules]]`