eMule 鸿蒙 (eMule for HarmonyOS)

· 浏览 5 次

未上线发行,“仅供分析娱乐,请勿用于非法使用”

eMule 鸿蒙 (eMule for HarmonyOS)
基于 eDonkey2000 / eMule eD2k 协议的鸿蒙原生搜索与链接工具。提供 eD2k 文件搜索、服务器节点管理与 **eD2k 下载链接一键复制** 能力(不含下载功能)。采用 HarmonyOS Stage 模型、ArkTS + ArkUI 开发,目标 API 24 (HarmonyOS 6.1.1)。
## 工程结构

```
eMule-Harmony/
├── AppScope/ # 应用级配置与全局资源
│ ├── app.json5 # Bundle 名称、版本、图标
│ └── resources/base/ # 应用图标、名称
├── entry/src/main/ # 主模块(entry)
│ ├── module.json5 # 模块配置、权限声明(INTERNET)
│ ├── ets/
│ │ ├── entryability/EntryAbility.ets # 入口 Ability(生命周期管理)
│ │ ├── pages/
│ │ │ ├── Index.ets # 主入口(Tabs 底部导航)
│ │ │ ├── SearchPage.ets # 文件搜索页 + 复制链接
│ │ │ ├── ServerPage.ets # eD2k 服务器节点页
│ │ │ └── SettingsPage.ets # 应用设置页
│ │ ├── core/ # eD2k 协议核心层
│ │ │ ├── types.ets # 公共类型定义(文件信息、任务状态等)
│ │ │ ├── Ed2kLinkParser.ets # eD2k 链接解析器
│ │ │ ├── Ed2kProtocol.ets # 协议消息编解码(帧结构、操作码、工厂方法)
│ │ │ └── TcpClient.ets # @ohos.net.socket TCP 客户端封装
│ │ ├── viewmodel/ # 业务逻辑与状态管理
│ │ │ ├── SearchViewModel.ets # 搜索 ViewModel(搜索/结果)
│ │ │ └── ServerViewModel.ets # 服务器节点 ViewModel
│ │ └── utils/
│ │ ├── IdGenerator.ets # UUID / 短 ID 生成
│ │ └── FormatUtils.ets # 字节、速度、百分比、ETA 格式化
│ └── resources/ # 字符串、颜色、页面路由、国际化
├── build-profile.json5 # 工程级构建配置(SDK 6.1.1 API 24)
├── hvigorfile.ts # Hvigor 工程脚本
└── oh-package.json5 # 工程级依赖声明
```

## 核心架构

```
┌─────────────────────────────────────────────────────────┐
│ ArkUI 页面层 (Index / SearchPage / ServerPage ...) │
│ - Tabs 导航 · 搜索列表 · 服务器列表 · 设置 · 复制链接 │
├─────────────────────────────────────────────────────────┤
│ ViewModel 层 │
│ - SearchViewModel ←→ TcpClient (服务器搜索) │
│ - ServerViewModel ←→ TcpClient (延迟测试) │
├─────────────────────────────────────────────────────────┤
│ 核心层 │
│ - Ed2kProtocol: 协议帧序列化/反序列化 + 消息工厂 │
│ - Ed2kLinkParser: 链接解析 + 链接生成 + Hex/Binary 转换 │
│ - TcpClient: @ohos.net.socket Promise 化封装 │
├─────────────────────────────────────────────────────────┤
│ 网络层 │
│ - TCP 4661 服务器协议 (0xE3) │
│ - UDP Kad 网络 (待实现) │
└─────────────────────────────────────────────────────────┘
```

相关下载