gui改为使用python 不再依赖外部的运行时

This commit is contained in:
2025-08-28 17:30:32 +08:00
parent 1f15856a68
commit 2590b47137
25 changed files with 1449 additions and 560 deletions
+174 -24
View File
@@ -1,14 +1,15 @@
# HarmonyDevTools - Python版本
![](https://img.shields.io/badge/状态-稳定-red.svg)
![](https://img.shields.io/badge/启动时间-2024/06/20-green.svg)
![](https://img.shields.io/badge/优先级-NORMAL-blue.svg)
![GitHub Release](https://img.shields.io/github/v/release/dev-wiki/HarmonyDevTools?color=yellow&label=版本)
![](https://img.shields.io/badge/语言-Python-blue.svg)
本项目为HarmonyOS/OpenHarmony的 toolchains 工具提供UI操作, 方便使用.
本项目为HarmonyOS/OpenHarmony的 toolchains 工具提供Python Tkinter UI操作界面,方便使用。
## 1. 版本说明
目前支持 hdc 工具的使用,后续会陆续增加其他工具,
这是原C# WPF项目的Python Tkinter版本,保持了相同的功能特性:
hdc功能支持:
- 枚举设备/连接设备
@@ -19,34 +20,183 @@ hdc功能支持:
- 获取手机的UDID
- 其他命令的执行(手动输入执行)
下载地址: **Release** 页面下载最新版本。
## 2. 环境要求
![主界面](image/主界面.png)
- Python 3.7+
- Windows操作系统
- HarmonyOS/OpenHarmony SDK(包含toolchains目录)
## 2. 使用方式
## 3. 安装和运行
下载最新版本, 解压如下目录, 双击 `HarmonyDevTools.exe` 运行。
### 3.1 直接运行
![解压](image/解压后文件.png)
1. 确保已安装Python 3.7或更高版本
2. 下载项目文件
3. 确保`toolchains`目录包含`hdc.exe`文件
4. 运行主程序:
**方式一:使用启动脚本(推荐)**
```bash
run.bat
```
运行环境要求: netcore6.0, 如果双击无法运行,请下载安装 netcore6.0 runtime:
- x64版本:https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.31-windows-x64-installer
- x86版本:https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.31-windows-x86-installer
**方式二:直接运行Python文件**
```bash
python main.py
```
## 3. 更新hdc
### 3.2 安装依赖(可选)
根据OpenHarmony官方的文档: [hdc使用指导](https://docs.openharmony.cn/pages/v4.1/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md),
安装DevEco以后, 设置SDK路径, 下载最新的SDK, 里面包含 toolchains
如果需要额外的功能,可以安装可选依赖:
> ## 环境准备
> hdc 工具获取方式:
>
> 通过OpenHarmony sdk获取,hdc在sdk的toolchains目录下。
>
> **使用举例:**
>
> 下面以windows侧使用方式举例:
>
> 获取windows的sdk,将hdc.exe放到磁盘某个位置即可使用。
```bash
pip install -r requirements.txt
```
## 4. 打包为exe文件
### 4.1 使用项目自带的构建脚本(推荐)
```bash
# 运行构建脚本
python build.py
```
构建脚本会:
- 自动检查PyInstaller是否安装
- 自动清理之前的构建文件
- 构建HarmonyDevTools_v版本号.exe(包含版本信息)
- 自动创建完整的发布包
- 生成说明文档
- 构建完成后自动清理临时文件
### 4.2 使用PyInstaller手动打包
```bash
# 安装PyInstaller
pip install pyinstaller
# 打包为exe文件
pyinstaller --onefile --windowed --name HarmonyDevTools_v版本号 main.py
```
### 4.3 版本管理
```bash
# 更新版本号
python update_version.py
# 查看当前版本
# 运行 update_version.py 会显示当前版本
```
**版本号格式**: x.y.z (例如: 1.4.0)
- 文件名格式: HarmonyDevTools_v1_4_0.exe
- 程序内显示: 1.4.0(构建时通过命令行参数传递)
- 版本号来源: version_info.txt(main.py中的VERSION变量用于开发调试)
### 4.4 使用auto-py-to-exe(GUI工具)
```bash
# 安装auto-py-to-exe
pip install auto-py-to-exe
# 启动GUI打包工具
auto-py-to-exe
```
## 5. 项目结构
```
HarmonyDevTools_Python/
├── main.py # 主程序文件
├── build.py # 构建脚本
├── version_info.txt # 版本信息文件
├── update_version.py # 版本更新脚本
├── requirements.txt # Python依赖文件
├── README_Python.md # 说明文档
├── toolchains/ # 工具链目录
│ ├── hdc.exe # HDC工具
│ └── libusb_shared.dll
└── build/ # 打包输出目录(可选)
```
## 6. 功能说明
### 6.1 设备管理
- **列举设备**: 显示所有可用的HarmonyOS设备
- **连接设备**: 通过connect key连接指定设备
- **重启hdc**: 重启HDC服务
### 6.2 应用管理
- **安装hap**: 安装HarmonyOS应用包
- 替换安装: 覆盖已存在的应用
- 允许降级: 允许安装较低版本
- 动态授权: 动态授权安装
- **卸载应用**: 根据包名卸载应用
### 6.3 文件操作
- **导出照片**: 从设备导出照片到本地
- **自定义命令**: 执行任意hdc命令
### 6.4 系统信息
- **版本信息**: 显示HDC版本信息
- **UDID**: 获取设备唯一标识符
## 7. 与原C#版本的对比
| 特性 | C# WPF版本 | Python Tkinter版本 |
|------|------------|-------------------|
| 运行环境 | .NET Core 6.0 | Python 3.7+ |
| UI框架 | WPF | Tkinter |
| 打包大小 | 较大 | 较小 |
| 跨平台 | Windows | Windows/Linux/macOS |
| 开发难度 | 中等 | 简单 |
| 维护成本 | 中等 | 低 |
## 8. 故障排除
### 8.1 常见问题
1. **找不到hdc.exe**
- 确保`toolchains`目录存在且包含`hdc.exe`
- 检查文件路径是否正确
2. **Python未安装**
- 从[Python官网](https://www.python.org/downloads/)下载并安装Python
3. **tkinter模块错误**
- 大多数Python安装都包含tkinter
- 如果缺失,请重新安装Python并确保选中tkinter选项
### 8.2 日志查看
程序运行时会输出日志信息,可以通过查看控制台输出来诊断问题。
## 9. 开发说明
### 9.1 代码结构
- `HdcUtil`: HDC工具类,负责执行命令
- `HarmonyDevTools`: 主界面类,负责UI交互
- `main()`: 程序入口函数
### 9.2 扩展功能
如需添加新功能,可以:
1. 在`HdcUtil`类中添加新的静态方法
2. 在`HarmonyDevTools`类中添加对应的UI元素和事件处理
3. 更新UI布局
## 10. 许可证
本项目遵循原项目的许可证条款。
## 11. 贡献
欢迎提交Issue和Pull Request来改进这个项目。
---
**注意**: 使用前请确保已正确安装HarmonyOS/OpenHarmony SDK,并且`toolchains`目录包含所需的工具文件。